c# - 使用 ThreadPool.QueueUserWorkItem 和使用 System.Thread 有什么区别?

标签 c# .net multithreading

<分区>

Possible Duplicate:
Advantage of using Thread.Start vs QueueUserWorkItem

如果我想通过一个线程来执行一个方法,那么我通常这样使用System.Thread

 Thread th = new Thread(Test_Progress);
 th.Start();

但我的同事告诉我,像下面这样使用 ThreadPool.QueueUserWorkItem 会更好

ThreadPool.QueueUserWorkItem(new WaitCallback(Test_Progress),(object)true );

那么性能和处理方式有什么不同吗??

最佳答案

创建线程是昂贵的对象,使用线程池是在单独的线程上执行快速工作的更好方法,而无需处理创建新线程的全部成本。

此外,您要确保您没有在池线程上执行很长时间的执行操作,因为您可能会耗尽池中有限数量的线程。

您应该阅读位于此处的关于线程池的 MSDN 文档:http://msdn.microsoft.com/en-us/library/0ka9477y.aspx

它将解释一些在尝试决定使用什么时要记住的事情。

关于c# - 使用 ThreadPool.QueueUserWorkItem 和使用 System.Thread 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7427963/

相关文章:

c# - 使用 C# 解析 XML 文件?

c# - 如何列出请求用户在 WCF 服务中的角色?

c# - 使用 C# 自动生成字母数字唯一 ID

c# - 所有获取数据库对象的 linq 都应该用 try catch 包围吗?

c# - 顺序访问异步套接字

c# - 如何随机生成彼此易于识别的颜色?

asp.net - 如何解析具有多个参数值的 URL 字符串?

java - 多线程概念

java - 如何确保每个线程工作在不同的进程对象上以避免线程安全问题?

java - 如何获取线程的状态?