Вы можете просто использовать withContext()
или coroutineScope()
для запуска другой сопрограммы:
withContext(coroutineContext) {
launch { ... }
}
В то время как вторая переопределяет Job
контекста, но повторно использует контекст:
В консоли нет окна для минимизации. Он запускается в окне командной строки. Вы можете перехватить сообщения окна и скрыть окно при сворачивании. В вашем приложении можно добавить иконку в трее так же, как вы бы это делали в приложении для Windows. Ну, как-то это пахнет ...
Но: я не уверен, почему вы хотите это сделать. Консольное приложение по дизайну отличается от Windows-приложения. Следовательно, может быть, это вариант, чтобы изменить приложение на приложение формы Windows?
Вы не можете скрыть консольное приложение, потому что на самом деле у него нет окна, чтобы скрыть, видя, как оно есть работает в консоли (сама консоль - это просто окно консоли, а не приложение, работающее в ней)
Да, вы можете сделать это. Создайте приложение Windows Forms и добавьте компонент NotifyIcon .
Затем используйте следующие методы (, найденный в MSDN ) для выделения и отображения консоли
[DllImport("kernel32.dll")]
public static extern Boolean AllocConsole();
[DllImport("kernel32.dll")]
public static extern Boolean FreeConsole();
[DllImport("kernel32.dll")]
public static extern Boolean AttachConsole(Int32 ProcessId);
, когда ваша консоль находится на экране захватите щелчок кнопки свертывания и используйте его, чтобы скрыть окно консоли и обновить значок уведомления. Вы можете найти свое окно, используя следующие методы ( найден в MSDN ):
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
// Find window by Caption only. Note you must pass IntPtr.Zero as the first parameter.
// Also consider whether you're being lazy or not.
[DllImport("user32.dll", EntryPoint="FindWindow", SetLastError = true)]
static extern IntPtr FindWindowByCaption(IntPtr ZeroOnly, string lpWindowName);
Обязательно вызывайте FreeConsole, когда будете готовы закрыть приложение.