我有两个长时间运行的任务,它们同时从网络流读取和写入,这需要我使用两个不同的线程。
我已将它们标记为长时间运行,但根据文档将它们标记为长时间运行只是建议,但不保证它们将在不同线程上运行。
我需要编写自己的任务计划程序吗?我应该改用线程池吗?
最佳答案
LongRunning 暗示它应该在新线程上执行,而不是在 ThreadPool 中的现有线程上执行。这样您就不会用长时间运行的任务耗尽 ThreadPool。
不保证会使用两个不同的线程,无论是在 TPL 中,还是在 ThreadPool 中。例如,可以是同一个线程同步执行两个任务。
您是否考虑过使用异步 io 来代替?
关于c# - 如何使用新的任务并行库确保两个任务在不同的线程甚至不同的处理器上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4469280/