我的目標是編寫一個程序,根據給定的用戶輸入來處理任意數量的任務。C#多線程 - 使用什麼方法?
假設在這種情況下任務的數量是1000。
現在,我想能夠產生一個動態數量的線程,並開始逐一處理任務。
我會假設我需要使用「同步」方法,而不是「異步」方法,以便萬一一個任務有問題時,我不希望它放慢其他任務的完成。
我會用什麼方法來完成上述操作?信號燈?線程池?我如何確保線程不會嘗試啓動已由另一個線程處理的任務? 「鎖」會處理這個問題嗎?
代碼示例和/或指向我的正確方向的網站鏈接將不勝感激。
編輯:與MSDN斐波那契示例的問題是,waitall方法最多隻能處理64個等待。由於1000個任務,我需要的不僅僅是這些。如何解決這種情況而不造成死鎖?
他們是獨立的。 – Sev 2009-09-20 19:01:04
我只是看着這個例子:http://msdn.microsoft.com/en-us/library/3dasc8as%28VS.80%29.aspx - 它使用一個WaitAll,並且該方法只能處理多達64 - - 在我的情況下,這是有問題的。使用WaitOne我讀取導致死鎖問題。但是你建議我不必等到他們全部完成之後(這對我來說是可能的) – Sev 2009-09-20 19:04:14
@Sev:我說等待所有事情都要完成通常會比等待每個單獨的任務完成:) – 2009-09-20 19:16:06