gpt4 book ai didi

c# - .NET 的多线程库

转载 作者:可可西里 更新时间:2023-11-01 08:56:12 24 4
gpt4 key购买 nike

我在一些程序中使用了多线程,但仍然感觉不太舒服。

有哪些适用于 C#/.NET 的多线程库,它们之间有哪些优势?

我所说的多线程库是指所有有助于简化多线程编程的东西。

您定期使用什么 .NET 集成(即像 ThreadPool)?你遇到了哪些问题?

最佳答案

在应用程序中使用多线程有多种原因:

  • 界面响应能力
  • 并发操作
  • 并行加速

应该选择哪种方法取决于您要执行的操作。例如,对于 UI 响应,请考虑使用 BackgroundWorker

对于并发操作(例如,服务器:某些东西必须是并行的,但即使在单核系统上也可能确实需要并发),考虑使用线程池或,如果任务是长期存在的并且您需要很多任务,请考虑为每个任务使用一个线程。

如果您有一个所谓的并行问题,可以很容易地分成小的子问题,请考虑使用工作线程池(与 CPU 内核一样多的线程)从队列中提取任务。微软Task Parallel Library (TPL)可能在这里有所帮助。如果作业可以很容易地表示为一元流计算(即在 LINQ 中使用转换和聚合等工作的查询),则在 TPL 之上运行的并行 LINQ(相同链接)可能会有所帮助。

还有其他方法,例如Actor-style parallelism正如在 Erlang 中所见,由于缺乏绿色线程模型或实现相同方法的方法(例如支持 CLR 的延续),因此在 .NET 中更难有效地实现。

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

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