Рассмотрим задачу задержки запуска и забывания, подобную этой:
void Fire()
{
Task.Delay(TimeSpan.FromDays(1000)).ContinueWith(_ => Console.WriteLine("Finally!"));
}
После возврата Fire
код больше не содержит ссылку на задачу, возвращаемую Delay
.Таким образом, если что-то не ссылается на задание за кулисами, оно будет собирать мусор.Это то, что происходит?И если да, то отменяется ли задача?
Или, возможно, имеется ссылка на задачу в каком-то статическом объекте в структуре, которая не позволяет собирать мусор, позволяя выполнить его до завершения?
Или что-то еще?И документирует ли Microsoft поведение в любом месте?