Thread.Sleep(0)的含义

loveliyi 2007-04-17 07:42:23
经常有朋友问:Thread.Sleep(0)的含义
我给朋友解答,顺便写了一个例程,供大家讨论

Thread.Sleep(0):Specify zero (0) to indicate that this thread should be suspended to allow other waiting threads to execute.

例子:
static void Main(string[] args)
{
T=new Thread(new ThreadStart(MyCalculate));
T.Start();
DateTime s=DateTime.Now;
Thread.Sleep(0);//大家可以注释这条语句察看结果的不同
T.Abort();
TimeSpan e=DateTime.Now-s;
Console.WriteLine(e+"thread end");
}
public static void MyCalculate()
{
int i=0;
while(true)
{
i++;
Console.WriteLine(i+"thread start");
}
}
...全文
473 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
commandos 2007-04-24
  • 打赏
  • 举报
回复
Thread.Sleep 方法 (Int32)
全部显示
将当前线程挂起指定的时间。
[C#]
public static void Sleep( int millisecondsTimeout);

参数
millisecondsTimeout
线程被阻塞的毫秒数。指定零 (0) 以指示应挂起此线程以使其他等待线程能够执行。指定 Infinite 以无限期阻塞线程。

////////////////////////////////////////
msdn的解释绝对权威。就是先让Main线程sleep 直到MyCalculate 执行完为止。
不过MyCalculate()里面是个死循环。要到sleep 之后在main里abort ..估计这个程序会运行到变量i 溢出。。 

sunxw18 2007-04-24
  • 打赏
  • 举报
回复
up
mangshuo 2007-04-24
  • 打赏
  • 举报
回复
哈哈007哈 2007-04-17
  • 打赏
  • 举报
回复
不错

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧