Из того, что я могу сказать, у меня есть вводящие в заблуждение биты информации. Мне нужно, чтобы в фоновом режиме выполнялся отдельный поток.
В настоящий момент я делаю это так:
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
}
}
Рекомендуете ли вы вернуться к этому подходу, чтобы гарантировать использование нового потока?