using System.Threading.Tasks;
public static void Main()
var weakReference = ForgottenTask();
Console.WriteLine($"Before GC.Collect, IsAlive: {weakReference.IsAlive}");
Console.WriteLine($"After GC.Collect, IsAlive: {weakReference.IsAlive}");
static WeakReference ForgottenTask()
var task = new Task(() => { }).ContinueWith(_ => { });
return new WeakReference(task);