在另一个进程正在运行时启用按钮单击

时间:2013-08-28 09:43:33

标签: c# button

我看起来有点谷歌,但无法让它发挥作用。

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

我想添加一个“全部杀死”按钮,以便在按下时终止每一个按钮,但是当我开始一个过程时,我不能按任何其他按钮直到它的完成。

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);
    }

3 个答案:

答案 0 :(得分:2)

你必须运行你的" Kill All"异步方法中的方法。运行长进程时,主线程始终被阻塞。

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

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

  1. A BackgroundWorker
  2. 另一个主题
  3. 另一项任务
  4. 使用async / await
  5. 反应性扩展
  6. 有几种方法可以通知您所有进程都已终止!这取决于您使用的方法。

答案 1 :(得分:0)

答案 2 :(得分:0)

这是一个Windows应用程序吗?如果你感觉老了,喜欢和其他开发人员打交道,可以在你的死亡循环中坚持Application.DoEvents()

你知道你想要。

如果你想在没有收到所有同伴的蔑视的情况下这样做,请参阅this question and answer