Как создать переднюю задачу? - PullRequest
6 голосов
/ 14 марта 2012

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

void MainThreadMain()
{
    task_main = Task.Factory.StartNew(() => OtherThread()) ;
    return;
}

void OtherThread()
{
  while(true)
  {
     TellChuckNorrisJoke();
  }
}

. Как я могу гарантировать, что task_main продолжит работать, даже если основной поток не работает?Я предполагал, что я сделаю:

task_main.IsBackgorund = false; 

, но такой опции нет: \ Я могу заставить свой основной поток ожидать сигнала от другого моего потока, который перешел в режим переднего плана.но это просто глупо.

1 Ответ

6 голосов
/ 14 марта 2012

Очевидный вопрос: почему вы не запускаете свою работу в главном потоке?

Предполагая, что это не вариант, вы должны использовать Thread, а не Task. Тогда вы можете установить:

Thread.IsBackground = false;

Это предотвратит завершение вашего приложения во время работы рабочего потока.

...