0

Visual StudioとC#を使用してコンソールアプリケーションを作成しています。デバッグ情報をコンソールウィンドウに常に出力しています。

プログラムは非常に単純で、複数のデータベースに複数回クエリを実行し、値を中央データベースに保存するだけです。これは合計で900回強です。データベースにクエリを実行している時点で、コンソールウィンドウでときどき(ランダムに)停止し、デバッグ情報の出力を停止するか、プログラムを続行しなくなります。奇妙なことに、ウィンドウを強調表示して右クリック(コピー)すると、プログラムが元の状態に戻り、再び機能し始めます。

誰かがこれを引き起こしている可能性があることを知っていますか?これは、私がこれまでにプログラムで見た中で最も独特な動作です。

4

1 に答える 1

1

ユーザーが誤って黒いコンソールウィンドウをクリックすると、カーソルが塗りつぶされた白い長方形に変わり、別のクリックが行われるまでアプリがハングします。

これは、「クイック編集モード」が有効になっている場合のコンソールウィンドウの一般的な機能です。

この機能を無効にするには、実行時にアプリのコンソールウィンドウの[クイック編集モード]オプションをオフにする必要があります。

または、プログラムで無効にします。

// http://msdn.microsoft.com/en-us/library/ms686033(VS.85).aspx
    [DllImport("kernel32.dll")]
    public static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode);

    private const uint ENABLE_EXTENDED_FLAGS = 0x0080;

    static void Main(string[] args)
    {
         IntPtr handle = Process.GetCurrentProcess().MainWindowHandle;
         SetConsoleMode(handle, ENABLE_EXTENDED_FLAGS);
于 2012-04-25T14:41:08.403 に答える