Threading.Sleep with System.Threading.Tasks

本文关键字:Threading Tasks System with Sleep | 更新日期: 2023-09-27 17:55:23

如果我将System.Threading.Thread.Sleep()放入使用TaskFactory.StartNew()启动的任务中会发生什么?它是否使正在执行的线程本身进入睡眠状态,或者该线程会在第一个线程休眠时执行另一个任务?

问这个是因为我目前正在处理一台服务器,该服务器有时必须等待从其客户端接收数据,如果我将处理客户端连接的任务置于睡眠状态,我想知道执行此特定任务的线程是否能够在第一个连接等待数据时处理另一个连接。

Threading.Sleep with System.Threading.Tasks

Thread.Sleep始终使当前执行的线程休眠,无论该线程是否正在执行任务。

没有任务休眠的概念 - 只有一个线程。当然,线程池将允许多个线程执行,因此您最终可能会得到比实际需要的更多的线程。

听起来您可能希望异步等待数据,在数据可用时继续执行任务的其余工作。

C# 5 的异步方法将使这一切变得更加简单。