【发布时间】:2019-12-31 16:46:35
【问题描述】:
我有一个启动两个线程的按钮
private void CrawdBtn_Click(object sender, EventArgs e)
{
CrawdBtn.Enabled = false;
t = new Thread(AddLinksToList);
b = new Thread(EnqueueFromList);
t.Start();
b.Start();
}
还有其他按钮可以暂停、恢复、停止这些线程 我的问题是如何在线程工作时禁用(暂停、恢复、停止)按钮并在线程完成后重新启用 Crawl
【问题讨论】:
-
使用
async/await会比较容易做到,你反对这样做吗? -
仔细阅读this。
-
Thread类没有事件Completed或Finished或Exited,因此您必须在AddLinksToList和EnqueueFromList两个方法中包含检查代码。如果你使用Tasks 而不是线程,它会更容易和更干净。 -
那么 GSerg 的链接现在是你的朋友。
标签: c# multithreading winforms button