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