加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读