发布网友 发布时间:2022-04-23 22:21
共1个回答
热心网友 时间:2023-10-11 23:27
Task并不是Thread,一个Thread上可以被分配多个Task且这些Task会由.NET进行调度。
默认的Task.Run将创建一个Task到默认的TaskSchele,首选项是挂在当前线程上。然而当当前线程资源已满,或者状态不为活动中,该Task将被分配到另一可用线程以确保可以立刻执行。如果无其他可用线程则新的线程将被创建。
仔细看你的代码,Task.Delay和Thread.Sleep完全是两种不同的东西。
如需要Task强制分配到当前线程,请在运行Task时显示指定其TaskSchele枚举值为Current。
详情参见MSDN,TaskSchele。