решаю похожую задачку, но с небольшими отличиями.
тоже нужно вызвать метод в конкретном потоке, но контроля за этим потоком у меня нет.
в этом потоке выполняется ServiceBase.Run(someServices).
задача следующая: есть несколько сервисов, если какой-нибудь "отваливается", то он должен перевести себя в состояние остановлен. мэнеджт кодом это можно решить посредством вызова Stop самого сервиса, но
class MyService: ServiceBase
{
// ... здесь запускается поток в котром выполняется вся работа сервиса
// здесь тело метода выполняющего работу
void ThreadWork()
{
try
{
}
catch (Exception ex)
{
// log exception
}
// что и как делать здесь чтобы сообщить что сервис остановлен? как я понимаю нужно вызвать Stop(), но в потоке в которому обрабатывается очередь SCM
}
}