我有奇怪的問題報告的用戶和一旦我轉載。Backgroundworker被取消並鎖定?它有可能如何?
我有各種按鈕的形式,每個按鈕執行長時間的操作。
當新按鈕被點擊時,舊的操作將停止,新的將被啓動。
,我注意到奇怪的現象:
當我點擊按鈕,有時操作亙古不變的開始。 操作無法啓動,因爲下面的代碼:
if (!Worker.IsBusy)
{
RunReload();
}
else
{
isWorkerPendingForNewJob = true;
Worker.CancelAsync();
}
取消被稱爲幾次,但我的工作人員總是很忙!
當我剎車我的項目執行,我注意到它停止在鎖定部分。
在這個鎖裏面,我只是創建了一些用於所有進程的對象。
圖像上的瑕疵點從未命中。 爲什麼backgroundworked總是忙碌並鎖定在這條線上?
聽起來像一個僵局。 「PickOrCreateCategory」全部從哪裏調用? – McGarnagle
只能從此背景工作者運行方法。 – Evgeny
使lockobject至少爲靜態,並使其成爲私有的,以查看它是否在導致死鎖的派生類中使用。 – Silvermind