3

我看起来有点谷歌但不能让它工作。

当我按下按钮时,我完成了一些过程。

我想添加一个“全部杀死”按钮以在按下时终止所有操作,但是当我开始一个过程时,我无法按下任何其他按钮,直到它完成。

private void button_checkZero_phones_Click(object sender, EventArgs e)
    {
        Thread thread = new Thread(new ThreadStart(WorkThreadFunction));
        thread.Start();
    }

private void button_kill_all_Click(object sender, EventArgs e)
    {
        System.Environment.Exit(1);
    }
4

3 回答 3

2

您必须以异步方法运行“全部杀死”方法。当你运行一个长进程时,主线程总是被阻塞。

有关您的问题的更多信息: WinForm Application UI Hangs during Long-Running Operation

只需使用以下方法之一 - 运行 Kill All in:

  1. 一个BackgroundWorker
  2. 另一个线程
  3. 另一个任务
  4. 使用异步/等待
  5. 反应式扩展

有几种方法可以通知您所有进程都已终止!这取决于您使用哪种方法。

于 2013-08-28T09:53:06.850 回答
0

使用async函数。我发现了这些有用的链接

http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx

http://msdn.microsoft.com/en-us/library/vstudio/hh156513.aspx

于 2013-08-28T09:58:13.830 回答
0

这是 Windows 应用程序吗?如果您感觉老派并喜欢结束其他开发人员,Application.DoEvents()请在您的死亡循环中坚持下去。

你知道你想。

如果您想在不受到所有同行嘲笑的情况下做到这一点,请参阅此问题和答案

于 2013-08-28T09:58:44.033 回答