问题描述
小弟初学C#,刚学完线程,感觉有点迷糊,以下是小弟的练习题。编写一个基于控制台的程序,声明两个线程,要求:第一个线程显示数字1~15,然后休眠1000毫秒,接着恢复显示数字到25第二个线程显示数字26~49,然后休眠5000毫秒,接着恢复显示数字到75第二个线程的优先权为最高。下面是小弟写的代码:请各位高手指点错误,我感觉有错误usingSystem;usingSystem.Threading;namespaceDIY{publicclassMyClass{publicstaticvoidMain(string[]args){Threadt1=newThread(newThreadStart(DispNum1));Threadt2=newThread(newThreadStart(DispNum2));t2.Priority=ThreadPriority.Highest;t1.Priority=ThreadPriority.BelowNormal;t1.Start();t2.Start();Console.ReadLine();}privatestaticvoidDispNum1(){intnum=1;while(num>0){if(num==15){Thread.Sleep(1000);}else{Console.WriteLine(num);if(num==25){break;}}num++;}}privatestaticvoidDispNum2(){intnum=26;while(num>0){if(num==49){Thread.Sleep(5000);}else{Console.WriteLine(num);if(num==75){break;}}num++;}}}}
解决方案
解决方案二:
貌似你有三个线程。。程序运行会有主线程的。
解决方案三:
请高手予以改正谢谢!
解决方案四:
privatestaticvoidthread1(){for(inti=1;i<=25;i++){Console.WriteLine("{0}",i);if(i==15)System.Threading.Thread.Sleep(1000);//if(i==25)}}privatestaticvoidthread2(){for(inti=26;i<=75;i++){Console.WriteLine("{0}",i);if(i==49)System.Threading.Thread.Sleep(5000);}}
解决方案五:
你的15和49没有显示.