次のコードは奇妙な動作をします。その理由を理解しようとしています。
NonAdminHttp.EnsureCanListenToWhenInNonAdminContext(8080);
EmbeddableDocumentStore db = new EmbeddableDocumentStore();
db.DataDirectory = @"C:\Google Drive\TradingFramework\RavenDatabase\";
db.UseEmbeddedHttpServer = true;
db.Initialize();
bool halt = true;
Console.WriteLine("Read to try server");
Console.ReadLine();
上記の「bool halt」のコードは RavenDB データベースを初期化しますが、この質問の目的とは関係ありません。2 つのシナリオを実行しました。
a) VS2012 内の行にデバッグ モードでブレーク ポイントを配置します
bool halt = true;
。その時点で、localhost:8080 をリッスンする作成済みの Web サーバーにアクセスできるはずです。そうではありません。ブレークポイントの前に待機ループをコードに入れても、違いはありませんThread.Sleep(xxx)
。b) ブレークポイントを削除すると、コードの実行が停止し、行 でユーザー入力を待ちます
Console.ReadLine();
。この場合、localhost:8080 のサーバーが応答し、問題なく動作します。
なぜそうなのですか?Console.Readline() に対してブレークポイントを設定すると何かが実行されないのはなぜですか? 私は厳密にテスト/開発しているだけですが、それがどのような違いを生むのか理解しようとしていますか? 私はいつも、a) と b) はまったく同じで、コードの実行を中断するという印象を受けていました。