LINQpad线程行为



我刚开始使用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(() => 
{

相关内容

  • 没有找到相关文章

最新更新