标题说明了一切:使用基于任务的异步编程(TAP / TPL)进行长时间运行的计算绑定操作是不是一个坏主意?我担心线程池卫生(即使用Task.Run时超额预订)等,但感觉TAP有很多好处(任务可以返回类型并提供await
或显式隐式)。 TAP还简化了同步。
以下是一个更详细的应用示例,但一般问题仍然存在:Design: Task-Asynchronous Pattern (TAP with await / async), vs threads with signalling vs other thread structures
答案 0 :(得分:2)
在创建任务时使用TaskCreationOptions.LongRunning
向TPL发出操作长期运行且不应使用线程池的信息。