【发布时间】:2014-02-11 23:44:05
【问题描述】:
我有:
static void Main(string[] args)
{
Task t = new Task(() =>
{
while (true)
{
Console.WriteLine("Test: " + DateTime.Now);
Thread.Sleep(1000);
}
});
t.Start();
while (true)
{
Console.WriteLine("Main thread Test: " + DateTime.Now);
Thread.Sleep(1000);
Debugger.Break();
}
return;
}
为什么当主线程停止时,任务t 停止执行?有没有办法让任务t 继续执行,无论我是否在主线程上放置断点?
编辑
我的真实代码中没有Debugger.Break();。我每 4 秒向一台计算机发送一次 ping,让另一台计算机知道我已连接。 问题是当我开始调试我的代码时,ping 不是每 4 秒发送一次。 如果我可以将此程序保留为一个程序,而不必创建一个单独的程序负责,那就太好了用于每 4 秒发送一次 ping。
【问题讨论】:
-
不,调试器停止执行所有线程。您可以在 Debug + Windows + Threads 调试器窗口中冻结线程。如果需要说明:不要将此代码发送给您的客户。
标签: c# multithreading debugging