Почему закрытие консоли, которая была запущена с AllocConsole, приводит к закрытию всего моего приложения? Могу ли я изменить это поведение?

Я хочу, чтобы окно консоли просто исчезло или, что еще лучше, было скрыто, но я хочу, чтобы мое приложение продолжало работать. Это возможно? Я хочу иметь возможность использовать Console.WriteLine и чтобы консоль служила окном вывода. Я хочу иметь возможность скрывать и показывать это, и я не хочу, чтобы все приложение умерло только потому, что консоль была закрыта.

EDIT

Код:

internal class SomeClass {

    [DllImport("kernel32")]
    private static extern bool AllocConsole();

    private static void Main() {
        AllocConsole();
        while(true) continue;
    }
}

EDIT 2

Я попробовал принятое решение здесь [Захватить консоль выхода C # ], согласно предложению в комментариях к этому вопросу. Код примера содержит ошибки: DLLImport должен быть «kernel32.dll» или «ядро32», а не «ядро32». После внесения этого изменения я получаю сообщение для моего обработчика для CTRL_CLOSE_EVENT, когда я нажимаю X в окне консоли. Однако вызов FreeConsole и / или возврат true не препятствует завершению приложения.

Ответы на вопрос(5)

Ваш ответ на вопрос