Re[5]: Как выполнить метод в другом (основном) потоке?
От: Аноним  
Дата: 13.07.09 13:32
Оценка:
Здравствуйте, Аноним, Вы писали:

на данный момент (так как выяснилось, что SynchronizationContext не работает "нормально" с консольными приложениями такой костыль (?):

А>
А>class MyService: ServiceBase
А>{
А>  // ... здесь запускается поток в котром выполняется вся работа сервиса

    void OnStop()
    {
            lock (sync)
            {
                if (!thread.IsAlive)
                    return;
                thread.Abort();
                thread.Join();
            }
    }

А>  // здесь тело метода выполняющего работу
А>  void ThreadWork()
А>  {
А>    try
А>    {
А>    }
А>    catch (Exception ex)
А>    {
А>      // log exception
А>    }
А>    context.Post(delegate { 
                                    thread.Join(); 
                                    Stop(); 
                                  }, null);
А>  }
А>}
А>


оцените плиз!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.