在单声道线程

我正在尝试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++); }