Sle*_*idi 3 c# linux mono multithreading
我正在Linux(Ubuntu)下尝试Mono/.Net 3.5.我尝试在Mono中使用线程,但它似乎无法正常工作.
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);
}
Run Code Online (Sandbox Code Playgroud)
两个循环都按顺序运行,就好像我没有使用线程一样.
怎么了?
在Windows上运行它,大多数时候所有第一个线程的写入都发生在第二个线程之前.
循环太微不足以真正看到多个线程并发运行的影响.第一个线程可以在第二个线程开始之前完成.
尝试在主循环中设置Sleep或spin循环.
for(int i=0; i<10; i++) {
Console.WriteLine(i+" "+name);
Thread.Sleep(10);
}
Run Code Online (Sandbox Code Playgroud)
要么
for(int i=0; i<10; i++) {
Console.WriteLine(i+" "+name);
for(int j=0; j<100000; j++);
}
Run Code Online (Sandbox Code Playgroud)