2011-12-08 9 views
4

私はいくつかの異なるC#アプリケーションでこの問題を抱えていました。これらは私がsysadminとして自分の人生を楽にするために書いたすべてのユーティリティプログラムです。データベースサーバー間でのデータの移行などがあります。Windows 7のコマンドラインから実行するとC#プログラムが頻繁に停止するのはなぜですか?

現在の手順をコンソールに表示します(古いバージョンはSystem.Console.WriteLine()、新しいものはlog4netのConsoleAppender)。これはコマンドプロンプトから常に実行されます。そうするとき、私は数回入力するまでランダムな間隔で一時停止するように見えます。私はそれらが一時停止していることに気付きます。なぜなら、通常は2〜2秒かかる画面が長時間画面に表示されているからです。 enterを押すと、物事はもうしばらくの間に通常通り処理を開始します。

これはなぜですか?どうすれば修正できますか?

+4

これはコンソールウィンドウでコンテンツを選択したことが原因と思われますか?この状態は、コンソールウィンドウのタイトルを見て、 "Select"という単語で始まるかどうかを調べることで判断できます。 コンソールウィンドウで選択が開始されると、選択モードが終了するまで、すべてのプログラムの出力がすべてブロックされます。これは、[Enter]を押すことによって行われ、コンテンツをクリップボードにコピーします。 –

答えて

9

コマンドウィンドウ画面でマウスを使用してテキストを選択すると、実行中のプログラムの実行が一時停止することがあります。マウスでウィンドウをクリックしたときに誤ってテキスト選択を作成している可能性があります。

+0

あなたは正しいと思います。ウィンドウ内をクリックするだけで1文字の選択が行われ、そうすることでこの動作を再現できます。ありがとう! –

+0

異なるバージョンのWindowsでこの動作が変更されるかどうかは知りませんか? – Paul

0

最も単純な仮定 - アプリケーションは、Console.ReadLine()というコールでブランチに行きます。 他の前提を作るには十分な情報ではありません。 最終的には、プログラムのハング中にデバッガでブレークコマンドを開始しようとしてください。

関連する問題