Многопоточное приложение формы (.NET 4.0) - PullRequest
0 голосов
/ 06 января 2011

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

Проблема в том, что когда пользователь загружает приложение формы, остальная часть бизнес-логики (из приложения консоли) не будет работать, пока форма не будет закрыта. Моей первой мыслью было использовать фоновый рабочий для формы, но бизнес-логика в проекте формы уже использует фоновый рабочий (а у меня только два ЦП ...). Возможно, это может быть моим невежеством в отношении многопоточности, но есть ли способ сделать это?

Любые мысли очень ценятся! Приветствия

1 Ответ

2 голосов
/ 06 января 2011

Ну, это довольно необычно.В общем, не имеет смысла предоставлять пользователю приятный графический интерфейс, и все равно оставлять окно консоли открытым и интерактивным.) собирается заблокировать поток.Должно быть, цикл сообщений должен быть запущен, чтобы поддерживать живой графический интерфейс.Если вы сделаете это, обязательно добавьте атрибут [STAThread] в метод Main ().

Единственная другая достойная альтернатива - это запуск потока.Это не проблема, поток пользовательского интерфейса не сжигает циклы процессора.Код запускается только тогда, когда пользователь что-то делает, в противном случае он простаивает 99% времени.Обязательно вызовите метод SetApartmentState () потока перед его запуском, требуется STA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...