C#如何杀死父线程
发布时间:2020-12-16 00:13:35 所属栏目:百科 来源:网络整理
导读:父母有几个子线程. 如果用户单击停止按钮,则应使用所有子线程终止父线程. //calls a main thread mainThread = new Thread(new ThreadStart(startWorking)); mainThread.Start(); //////////////////////////////////////////////// startWorking(){ ManualR
父母有几个子线程.
如果用户单击停止按钮,则应使用所有子线程终止父线程. //calls a main thread mainThread = new Thread(new ThreadStart(startWorking)); mainThread.Start(); //////////////////////////////////////////////// startWorking() { ManualResetEventInstance = new ManualResetEvent(false); ThreadPool.SetMaxThreads(m_ThreadPoolLimit,m_ThreadPoolLimit); for(int i = 0; i < list.count ; i++) { ThreadData obj_ThreadData = new ThreadData(); obj_ThreadData.name = list[i]; m_ThreadCount++; //execute WaitCallback obj_waitCallBack = new WaitCallback(startParsing); ThreadPool.QueueUserWorkItem(obj_waitCallBack,obj_ThreadData); } ManualResetEventInstance.WaitOne(); } ?我想杀死mainThread. 解决方法
你肯定不想在这里杀死任何线程,因为(除其他原因)所讨论的“子线程”都来自线程池.
有关如何创建和终止线程的信息,请参见this article. 在您的情况下,您有多个线程都在使用startParsing方法.假设此方法中有一个循环,您将创建一个名为_stillWorking的类级别bool,并在startWorking方法的开头将其设置为true. 在startParsing的循环内部,每次检查_stillWorking都是真的.要“取消”所有这些线程,那么,只需将_stillWorking设置为false并等待线程完成. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容