调试时防止线程停止执行

时间:2014-02-11 15:30:59

标签: c# multithreading debugging

我有:

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。

1 个答案:

答案 0 :(得分:3)

不,你不能。这就是断点如何工作 - 所有线程都被打破了!

了解更多详情: https://stackoverflow.com/a/21339186/2243584