Re[4]: Как выполнить метод в другом (основном) потоке?
От: Аноним  
Дата: 13.07.09 13:24
Оценка:
решаю похожую задачку, но с небольшими отличиями.

тоже нужно вызвать метод в конкретном потоке, но контроля за этим потоком у меня нет.
в этом потоке выполняется ServiceBase.Run(someServices).

задача следующая: есть несколько сервисов, если какой-нибудь "отваливается", то он должен перевести себя в состояние остановлен. мэнеджт кодом это можно решить посредством вызова Stop самого сервиса, но
class MyService: ServiceBase
{
  // ... здесь запускается поток в котром выполняется вся работа сервиса

  // здесь тело метода выполняющего работу
  void ThreadWork()
  {
    try
    {
    }
    catch (Exception ex)
    {
      // log exception
    }
    // что и как делать здесь чтобы сообщить что сервис остановлен? как я понимаю нужно вызвать Stop(), но в потоке в которому обрабатывается очередь SCM
  }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.