这更像是一个“我想知道”的问题,而不是一个真正的问题。
在努力提高我的线程技能时,我遇到了以下难题。
源代码
internal class Program
{
private static void Main(string[] args)
{
var thread = new Thread(() => Print("Hello from t"));
thread.Start();
//thread.Join();
}
private static void Print(string message)
{
Console.WriteLine(message);
}
}
问题
如果我从 Visual Studio 运行应用程序(无论是 Debug 还是 Release 配置),除非我等待线程退出(使用),否则message
永远不会显示在输出窗口中。Join
解决方案
从命令提示符运行编译的可执行文件,您会看到预期的输出。
我的问题
我会大胆猜测并说 Visual Studio 环境使一切变得不同。
我想知道的是,如果我正在开发一个真实世界的应用程序,我将如何使用 Visual Studio 来调试所述应用程序,而不必被迫修改源代码(使用Join
)?