これは、実際の問題というよりも、「知りたい」種類の質問です。
スレッド化スキルの向上に取り組んでいるときに、次の難問に直面しています。
ソースコード
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 からアプリケーションを実行すると (デバッグ構成かリリース構成かに関係なく)、スレッドが終了するまで (を使用して) 待機しない限りmessage
、[出力] ウィンドウに は表示されません。Join
ソリューション
コンパイルされた実行可能ファイルをコマンド プロンプトから実行すると、期待どおりの出力が表示されます。
私の質問
大げさな推測で、Visual Studio 環境がすべての違いを生むと言います。
私が疑問に思っているのは、実際のアプリケーションで作業している場合、Visual Studio を使用して、ソース コードを (使用するためにJoin
)強制的に変更せずに、そのアプリケーションをデバッグするにはどうすればよいかということです。