c# – 使用Thread.Sleep(0)和Join()
我正在读一本关于多线程程序的书,我发现了这个小例子:
public static class Program { public static void ThreadMethod() { for (int i = 0; i < 10; i++) { Console.WriteLine(“ThreadProc: {0}”,i); Thread.Sleep(0); } } public static void Main() { Thread t = new Thread(new ThreadStart(ThreadMethod)); t.Start(); for (int i = 0; i < 4; i++) { Console.WriteLine(“Main thread: Do some work.”); Thread.Sleep(0); } t.Join(); } } 我有太多问题: 1)Thread.Sleep(0)的用途是什么,我的意思是,我尝试了两种情况:有或没有Thread.Sleep(0),运行时没有太大区别 2)t.Join()在这里真的很有用,因为它在Main方法的最后? 解决方法Thread.Sleep(0) 将屈服于其他线程的优先级低于您的优先级:
因此,在这个例子的情况下,尝试使线程以大致相同的速度运行.
尝试将IsBackground属性设置为不同的值,并尝试删除Join调用以查看发生的情况. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |