我刚开始使用 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(() =>
{
关于c# - LINQpad 线程行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9726201/