Microsoft .NET Base Class Library提供了幾種創建線程並啓動它的方法。基本上,調用與其他提供相同類型服務的調用非常相似:創建一個表示執行流(或更多)的對象,爲其分配一個代表要執行的執行流的委託,並最終根據委託簽名取決於對象作爲參數。Thread.Start()與ThreadPool.QueueUserWorkItem()
那麼,有兩種方法(主要):
1)使用System.Threading.Thread
類。
Thread curr = new Thread(myfunction); /* In a class, myfunction is a void taking an object */
curr.Start(new Object()); /* Or something else to be downcast */
2)使用System.Threading.ThreadPool
類。
ThreadPool.QueueUserWorkItem(myfunction, new Object()); /* Same philosophy here */
是否有任何特殊原因爲什麼我應該使用1)或2)?性能原因?模式?什麼是最好的方法?
我有一種感覺,答案是:「依情況而定」。你能否列舉出一種方法比另一種更好的情況?
http://stackoverflow.com/questions/1506838/backgroundworker-vs-background-thread/1507337#1507337 – 2011-05-31 20:13:47