Приложение CLI и GUI

Я пишу приложение, которое имеет как CLI, так и GUI.

Я прочитал большинство вопросов и статей, касающихся этого, и нашел очень полезным этот вопрос:

Может ли один исполняемый файл быть одновременно консольным и графическим приложением?

Мой окончательный код выглядит так:

        if (args.Length > 0)
        {
            //console code            
        }
        else
        {
            FreeConsole();
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form());
        } 

Это прекрасно работает при запуске .exe двойным щелчком, или при отладке, или из консоли с аргументами.

Однако, когда он запускается из консоли без аргументов, графический интерфейс открывается, как я и предполагал, но консоль застревает в ожидании закрытия графического интерфейса.

Это нехарактерный графический интерфейс и поведение консоли. Консоль обычно запускает графический интерфейс и не ждет его выхода, а только для новых команд.

Есть ли способ избежать этого?

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

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