工作无限的未引用任务可以被垃圾收集吗?

时间:2017-06-18 11:02:27

标签: c# garbage-collection task task-parallel-library

如果我有类似的代码:

public static void Main() 
{
    Task.Factory.StartNew(() => {
        while (true)
        {
            DoSomethingVeryImportant();
            Thread.Sleep(500);
        }
    }, TaskCreationOptions.LongRunning);

    Console.WriteLine("Started.");
    Console.ReadLine();
    Console.WriteLine("Closing.");
}

是否有可能最终确定此任务,因为没有引用它? var task = Task.Factory.StartNew(...会解决问题吗?

我理解在这种特定情况下最好使用本地task变量CancellationToken,取消任务并等待它结束,但现在我对另一件事感到好奇 - GC对未引用Task的行为。

0 个答案:

没有答案