Многопоточность объектов с помощью запросов WMI и некоторых других запросов - PullRequest
1 голос
/ 12 июня 2011

В настоящее время я нахожусь в процессе создания приложения для мониторинга сервера с использованием C # 4.0 , которое запрашивает информацию об оборудовании (использование CPU / RAM / HDD) с использованием WMI и некоторых других библиотек для запроса таких служб, как FTP иHTTP.Запрос данных об оборудовании инкапсулирован в класс Server, а программные сервисы находятся в классе Service, каждый из которых имеет таймер, который периодически запрашивает соответствующий сервер и сервисы с интервалом, установленным мной.

Однако, как и большинствоиз вас могут знать, что запросы WMI занимают много времени, и запросы службы программного обеспечения будут блокировать вызывающего абонента во время его выполнения.Теперь, когда я почти закончил создание этих классов (Сервер и Сервис), пришло время подумать об интеграции их в пользовательский интерфейс.

Я планирую использовать внешний интерфейс WPF, возможно, шаблон навигацииструктуры nRoute.Однако у меня очень мало знаний о WPF и многопоточности.Я хотел бы спросить, как я могу создать экземпляры всех объектов Server и Service в другом потоке, чтобы они не зависали в приложении?И могу ли я добавить их в коллекцию, а затем отобразить их в виде списка на внешнем интерфейсе?

Любые предложения и советы приветствуются, спасибо.

1 Ответ

0 голосов
/ 12 июня 2011

Есть несколько доступных вариантов.

Работая с коллекциями, рассмотрите возможность использования одновременных коллекций .

В вашей ситуации я начну с пула потоков или создания потоков вручную, а если это не сработает, я рассмотрю другие варианты.

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