Как гарантировать создание нового потока при использовании метода Task.StartNew

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

] На данный момент я делаю это так:

var task = Task.Factory.StartNew
         (CheckFiles
          , cancelCheckFile.Token
          , TaskCreationOptions.LongRunning
          , TaskScheduler.Default);//Check for files on another thread

 private void CheckFiles()
 {
    while (!cancelCheckFile.Token.IsCancellationRequested)
    {
        //do stuff
    }
 }

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

в прошлом я сделал что-то вроде этого:

thQueueChecker = new Thread(new ThreadStart(CheckQueue));
thQueueChecker.IsBackground = true;
thQueueChecker.Name = "CheckQueues" + DateTime.Now.Ticks.ToString();
thQueueChecker.Start();


private void CheckQueue()
{
   while (!ProgramEnding)
   {
            //do stuff
   }
}

Вы бы порекомендовали мне вернуться к этому подходу, чтобы гарантировать использование нового потока?

13
задан Gennady Vanin Геннадий Ванин 15 April 2013 в 12:35
поделиться