我刚开始使用LinqPad,并在其中尝试了一些线程片段,我很困惑为什么我的代码没有达到预期的效果。
Thread t1 = new Thread
(delegate()
{
for (int cycles = 0; cycles < 1000; cycles++)
{
Thread.Sleep(500);
Console.WriteLine("Hello World!");
}
}
);
t1.Start();
Console.WriteLine("Soham");
为什么这只是打印Soham
。线程内部的代码块根本没有执行。我不明白为什么,因为语法编译得很好,而且据我所知,c应该编译得好,在VS2010中运行,并执行这两个输出,即使其顺序无法确定。我在这里做错了什么或想什么。我可能需要一些有用的教程和建议来适应LinqPad。
尝试在Console.WriteLine("Soham")
:-之后添加一个t1.Join()
。LINQPad可能会看到主线程终止并杀死所有线程。对于t1.Join();
,主线程将等待另一个线程完成。
啊。。。刚刚测试过:-)
我要补充的是,你可以用更少的字符书写:
new Thread(() =>
{