gpt4 book ai didi

c# - 如何管理等待工作要做的工作线程?

转载 作者:太空宇宙 更新时间:2023-11-03 19:33:07 25 4
gpt4 key购买 nike

我有一个程序执行以下操作:

  1. 调用webservice(有多次调用同一个web服务)

  2. 处理1的结果。

  3. 将 2. 的结果插入数据库

所以我觉得还是做一些多线程比较好。我想我可以这样做:

  • 一个线程是master(暂且称它为A)

  • 它创建一些调用网络服务的线程(我们称之为 W)

  • 当 W 有一些结果时,它会将其发送给 A(或者 A 检测到 W 有一些东西)

  • A 将结果发送到某个计算线程(我们称之为 C)

  • 当 C 有一些结果时,它会将其发送给 A(或者 A 检测到 C 有一些东西)

  • A 将结果发送到某个数据库线程(我们称之为 D)

所以有时 C 或 D 会等待工作完成。

通过这种技术,我将能够为每个任务设置线程数。

能否请您告诉我如何做到这一点,也许是否有任何模式。编辑:我添加了“some”而不是“a”,所以我会为一些耗时的过程创建许多线程,并且可能只有一个线程最快。

最佳答案

在我看来,您可以使用生产者/消费者模式。使用 .NET 4,这变得非常容易实现。启动数Task s 并使用 BlockingCollection<T>作为任务之间的缓冲区。查看this post了解详情。

关于c# - 如何管理等待工作要做的工作线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3820496/

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