2012-10-10 20 views
0

我在代碼中有一個問題,您backgroundWorker獲取兩次。因此,我正在嘗試set_WorkerSupportsCacellation,因此如果backgroundWorker1.IsBusybackgroundWorker1.CancelAsync可以取消線程。然而,當我做到以下幾點:如何set_WorkerSupportsCacellation爲backgroundWorker

this.backgroundWorker1.set_WorkerSupportsCancellation(true); 

我得到一個編譯錯誤:

'System.ComponentModel.BackgroundWorker.WorkerSupportsCancellation.set:不能顯式調用oprator或訪問

有誰知道我怎樣才能把它設置爲真?

我用Google搜索了這個問題,但沒有看到答案。到目前爲止,我發現以下鏈接是沒有幫助的:Canceling Threads http://www.c-sharpcorner.com/uploadfile/Ashush/using-the-backgroundworker-component/

謝謝!

回答

2

我不知道在哪裏set_WorkerSupportsCancellation(true)從何而來,但電話應該是:

backgroundWorker1.WorkerSupportsCancellation = true; 
+0

我試過了,現在它說我不能明確地調用運算符或存取器。我不確定如何設置它。這可能是屬性菜單中隱藏的一項設置,但我沒有看到它。我看到的例子顯示了你在這裏所說的話。 – Michele

+0

@Michele顯示更多的代碼,然後 - 必須有別的事情 –

+0

我想通了。見下文。我的背景工作人員在我的課程[設計]菜單屏幕上,所以也許這就是原因。沒有其他代碼可以發佈。在我的設計屏幕上,我轉到屬性,最後找到將其設置爲true的位置。現在它隨着它的設置而建立。 – Michele

2

在C#程序中它被認爲是一個錯誤,如果你明確地調用屬性setter/getter方法(編譯器生成的方法)或C#操作符映射到的方法。

+0

那我該怎麼設置呢? – Michele

+0

正如J ...向你展示的...什麼,那也不管用?這不可能,你的代碼中一定會有其他的東西導致這個錯誤。 –

0

我明白了。在屬性窗口中,選擇了WorkerSupportsCancellation,並將其設置爲true。呼!謝謝您的幫助!