我正在尝试Linux(Ubuntu)下的Mono / .Net 3.5。 我试图在单声道中使用线程,但它似乎并没有正常工作。
public static void Main (string[] args) { Thread thread =new Thread(()=> fn("first")); Thread thread1=new Thread(()=> fn("second")); thread.Start(); thread1.Start(); } static void fn(string name) { for(int i=0;i<10;i++) Console.WriteLine(i+" "+name); }
两个循环都按顺序运行,就好像我不使用线程一样。
哪里不对?
在Windows上运行它,大多数情况下,所有第一个线程的写入都发生在第二个线程之前。
循环太微不足道,以至于看不到多个线程同时运行的效果。 第一个线程可能会在第二个线程开始之前完成。
尝试在主循环中放置一个睡眠或旋转循环。
for(int i=0; i<10; i++) { Console.WriteLine(i+" "+name); Thread.Sleep(10); }
要么
for(int i=0; i<10; i++) { Console.WriteLine(i+" "+name); for(int j=0; j<100000; j++); }