我有一个只有两个功能的 Windows 窗体:第一个是在数据库中加载一些行,第二个功能是使用给定数量的线程处理这些行,因为处理速度在我的项目中非常重要,这就是为什么我不能考虑不使用多线程的选项。
我想添加停止执行进程的选项的问题,这意味着如果发生任何问题,则停止所有当前线程,以便用户指定另一个线程并再次重新启动执行,但我的 Windows 窗体似乎冻结和执行在所有线程正常完成工作后进入停止方法。
在处理按钮单击事件的更详细信息中,我将启动所有线程,然后循环所有线程
for (int i = 0; i < threads.Length; i++)
{
threads[i].Join();
}
在按钮单击事件中停止我
for(int i=0;i<threads.Length;i++)
{
if(threads[i].IsAlive)
threads[i].Abort();
}
我注意到,如果我评论加入部分,界面能够响应停止事件点击。
但我不想这样做,因为我想区分所有线程完成执行的那一刻,这就是我加入 pa 的原因