我刚开始使用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。
发布于 2012-03-16 02:52:01
尝试在Console.WriteLine("Soham")后面添加一个t1.Join() :-) LINQPad可能会看到主线程终止并杀死所有东西。使用t1.Join();,主线程将等待另一个线程完成。
啊..。并且刚刚测试了它:-)
我要补充的是,你可以用更少的字符来写:
new Thread(() =>
{https://stackoverflow.com/questions/9726201
复制相似问题