gpt4 book ai didi

c# - BackgroundWorker 和线程

转载 作者:太空狗 更新时间:2023-10-29 18:03:49 27 4
gpt4 key购买 nike

使用两者来完成给定任务的优缺点是什么。

百万美元的问题是何时使用哪一个?

非常感谢。

最佳答案

如果您所说的“线程”是指明确使用 System.Threading.Thread 类来创建、配置和启动您自己的线程,那么答案是这样做需要您做更多的工作,涉及更多的 CPU 周期,而不仅仅是从线程池中拉出一个线程(其他技术就是这样做的),但它为您提供了更大的灵 active ,因为它允许您指定线程优先级,以及使用线程池线程无法提供的其他几个特性。

当设计时不知道所需的线程数时,“线程池”方法更合适。该池最初包含少量线程,“准备好”供您调用它们。它可以按需动态创建新线程,并为您管理未使用线程的创建、协调和删除。您可以使用三种机制来访问和使用池中的线程。

  1. 使用 Delegate.BeginInvoke()(最常用的技术)
  2. 使用计时器(多种变体)
  3. System.Threading.ThreadPool 提供了其他几个功能(BackGroundWorker 类、QueueUserWorkItem() 等)。

关于c# - BackgroundWorker 和线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/747807/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com