c# - 如何使用新的任务并行库确保两个任务在不同的线程甚至不同的处理器上运行?

标签 c# .net multithreading network-programming task-parallel-library

我有两个长时间运行的任务,它们同时从网络流读取和写入,这需要我使用两个不同的线程。
我已将它们标记为长时间运行,但根据文档将它们标记为长时间运行只是建议,但不保证它们将在不同线程上运行。
我需要编写自己的任务计划程序吗?我应该改用线程池吗?

最佳答案

LongRunning 暗示它应该在新线程上执行,而不是在 ThreadPool 中的现有线程上执行。这样您就不会用长时间运行的任务耗尽 ThreadPool。

不保证会使用两个不同的线程,无论是在 TPL 中,还是在 ThreadPool 中。例如,可以是同一个线程同步执行两个任务。

您是否考虑过使用异步 io 来代替?

关于c# - 如何使用新的任务并行库确保两个任务在不同的线程甚至不同的处理器上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4469280/

相关文章:

c# - 绘制的线不显示在组合框中

c# - Azure 云 Web 角色 + AspNetCompiler?

ios - NSURLConnection 在另一个线程中启动。未调用委托(delegate)方法

python - Pyramid:多线程数据库操作

c# - 尝试压缩 Sha1 的大小,也许是制作唯一标识符的更好选择

c# - Windows 手机 : Call an Async method in OnNavigatedTo

c# - 带有显示详细信息选项的消息框?

c# - 使用异步和等待

c# - 在 C# 中,为什么我会收到 "can' t cast double to float 错误”?

.net - 为什么我的 AWS Lambda 在 ARM64 架构中运行时崩溃?