gpt4 book ai didi

c# - 如何使用 TPL 在 C# 中编码对特定线程的调用

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:15 26 4
gpt4 key购买 nike

我有一个 TCPClient 的轮询线程(这是离散 TCP 设备的最佳计划吗?),它聚合消息并偶尔通过触发事件来响应这些消息。事件生产者真的不太关心线程是否被长时间阻塞,但消费者的设计是这样的,我更愿意让它在我为处理状态而获得的单个工作线程上调用处理程序机器。

那么问题是这样的。我应该如何使用 Task 库最好地管理这些线程的创建、配置(线程名称、后台等)生命周期和调用编码?我有点熟悉使用 Thread 类型显式地执行此操作,但如果可能的话,我的公司更愿意通过使用 Task 来做我们能做的事情。

编辑:我相信我在这里需要的是基于消费者类型的 SynchronizationContext,确保任务在与该上下文相关联的单个线程上进行调度。

最佳答案

The question then is this. How should I best manage the creation, configuration (thread name, is background, etc.) lifetime, and marshaling of calls for these threads using the Task library?

这听起来像是 BlockingCollection<T> 的完美用例.此类专为生产者/消费者场景设计,允许您将任何线程添加到集合(其行为类似于线程安全队列),以及一个(或多个)线程或任务调用 blockingCollection.GetConsumingEnumerable() “消费”元素。

关于c# - 如何使用 TPL 在 C# 中编码对特定线程的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11938085/

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