Что происходит с удаленной задачей?

Что происходит с локальной ссылкой Задачи, когда она выходит за пределы области видимости и сборщик мусора решает избавиться от нее до завершения задачи?

В основном я спрашиваю, безопасно ли выполнять такой вид реализации вызова службы:

/// <summary>
/// Web service operation to start a large batch asynchronously
/// </summary>    
public StartBatchResponseMessage StartBatch(StartBatchRequestMessage request)
{
  Task t = Task.Factory.StartNew(DoWork);
  return new StartBatchResponseMessage();
}

private void DoWork()
{
  // Implement solving world hunger here.
}

Всегда ли DoWork завершается в этом примере? Даже если сборщик мусора решит удалить переменную экземпляра задачи t?

Если нет, то как безопаснее реализовать такую ​​функциональность?

5
задан razlebe 16 December 2011 в 11:48
поделиться