c# – 关闭GUI时杀死线程
发布时间:2020-12-15 21:57:22 所属栏目:百科 来源:网络整理
导读:我需要在两到四个不同的服务器上执行时间密集型任务. 服务器的数量可以变化. 我需要在大致相同的时间在每台机器上执行相同的任务,否则它会使此过程花费的时间增加四倍. 到目前为止,我已经能够想出这个: public partial class Form_main : Form{ liststring
我需要在两到四个不同的服务器上执行时间密集型任务.
服务器的数量可以变化. 我需要在大致相同的时间在每台机器上执行相同的任务,否则它会使此过程花费的时间增加四倍. 到目前为止,我已经能够想出这个: public partial class Form_main : Form { list<string> vms = new list<string>; ///Fill in vms... private void startTest() { ///prevents GUI from hanging ThreadPool.QueueUserWorkItem(new WaitCallback(runTests)); } pirvate void runTests() { ///Some setup stuff (~1 min) foreach(string vm in vms) { ThreadPool.QueueUserWorkItem(new WaitCallback(testProcedure),new object[] {vm}); } } } 这适用于一次运行所有内容,但问题是如果GUI被杀死,线程不会随之被杀死.我想它是杀死runTests线程但是没有杀死testProcedures线程. 我怎样才能使得在关闭GUI时testProcedures线程被杀死? 解决方法
您可以在主窗体的
OnFormClosed处理程序中调用
Environment.Exit方法.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |