我有用户报告的奇怪问题,曾经被我转载。
我有各种按钮的形式,每个按钮都执行长时间的操作。
单击新按钮时,旧操作将停止并开始新操作。
我注意到奇怪的行为:
当我单击按钮时,有时操作不会开始。无法启动操作,因为下一个代码:
if (!Worker.IsBusy)
{
RunReload();
}
else
{
isWorkerPendingForNewJob = true;
Worker.CancelAsync();
}
取消被调用了几次,但我的工作人员总是很忙!
当我停止我的项目执行时,我注意到它在锁定部分停止。
在这个锁里面,我只是创建了一些用于所有进程的对象。
图像上的断点永远不会命中。为什么 backgroundworked 总是忙并且被锁定在这条线上?