2010-07-17 97 views
0

我想將它用於一個項目,並且我遇到了麻煩。 我有一個Windows窗體,其中我開始了兩個線程,然後關閉窗體並且線程繼續他們的工作。當第二個線程停止時,如何中止第一個線程?線程問題

我做了第一個線程IsBackground,但第二個線程不是程序的唯一線程,並且第一個線程在另一個線程(窗體)中被關閉並且不再存在,此外我不能設置標誌一個不存在的類。 我該怎麼辦?

爲了解決這個問題,我希望你的電子郵件發送我的litle項目。 謝謝

回答

0

你說你可以設置一個不存在的標誌或類,但我會在某處創建一個標誌。如果這是不可能的,我建議你需要發佈原因。

所以我在參考發送到bool以某種方式兩個線程,當第一個線程完成,將設置booltrue和第二線程將繼續檢查該bool然後退出的時候它是真實的。

+0

我正在使用VB.NET2008,我創建了一個模塊並在其中聲明瞭我的線程和標誌。如果我有您的電子郵件,我會爲您發送我的小項目。 感謝和抱歉我的英語不好。 – Sadjad 2010-07-19 04:33:39

1

如果您使用的是.NET 4.0,並且使用CancellationToken來取消操作,那麼我建議將後臺工作作爲Task對象。

如果您還不在.NET 4.0中,則可以使用BackgroundWorker對象,該對象還支持取消。

0

你可能最好不要從將要消失的窗體創建線程。也許你應該在Program.cs中創建線程,然後你可以在應用程序關閉時從那裏殺掉它們。或者這種方法的一些變體取決於你的應用程序的結構。

+0

我正在使用VB.NET2008,我創建了一個模塊並在其中聲明瞭我的線程和標誌。如果我有你的電子郵件,我會爲你發送我的小項目。 感謝和抱歉我的英語不好。 – Sadjad 2010-07-19 04:32:08