Изменение механизма хостинга для планировщика - PullRequest
0 голосов
/ 25 января 2012

У меня есть один планировщик, работающий в Windows Service. Для каждого нового события создается новый поток. Затем каждый поток загружает DLL с помощью AddIn Framework и выполняет задачу.

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

Код для начального потока

 ThreadStart ts = KickOffEvents;
 Thread t = new Thread(ts);

Так что для этого мне нужно выпустить что-то, чтобы планировщик мог понять и убить определенный поток. Но так как этот планировщик размещен на оконном сервисе, я не могу этого сделать.

Может кто-нибудь сказать какой-нибудь обходной в этом ???

В настоящее время я работаю над перемещением функций планирования в IIS путем создания службы WCF. Тогда я смогу вызвать функцию службы wcf, которая каким-то образом уничтожит любое событие (поток).

Может ли кто-нибудь внести свой вклад в то, является ли какой-либо основной риск при этом ???

Заранее спасибо

1 Ответ

0 голосов
/ 25 января 2012

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

Вы можете использовать запрос службы WCF, чтобы установить этот флаг

...