在下面的控制台应用程序,如果我把一个断点在最后一行围棋(); 并执行到断点(在调试模式),按F5键,结果不是在每次运行时完全不同。
控制台可以是空白(不输出任何东西):
或者它可以输出只是另一个运行结果的一部分:
或者,在极少数情况下,结果是“完全”(“现实化”):
如果我通过F10调试(步过)或F11(步骤进),执行的结果会立即输出到控制台窗口。
为什么这样的差异?
假设我调试使用3D党库,其中我没有aссess源代码的应用程序。
是否有可能以确保他们的输出,而不走进了他们的代码?
控制台应用程序的代码:
using System;
using System.Threading;
namespace _5_2
{
class ThreadNaming
{
static void Main()
{
Thread.CurrentThread.Name = "main";
Thread worker = new Thread(Go);
Thread worker2 = new Thread(Go);
worker.Name = "1111";
worker.Start();
//string just4breakPoint = "aaa";
worker2.Name = "2222";
worker2.Start();
Go();
Console.ReadLine();
}
static void Go()
{
Console.WriteLine
("Hello from " + Thread.CurrentThread.Name);
}
}
}