How to better handle disposed controls when using async/await
问题 Consider this code that runs on the UI thread: dividends = await Database.GetDividends(); if (IsDisposed) return; //Do expensive UI work here earnings = await Database.GetEarnings(); if (IsDisposed) return; //Do expensive UI work here //etc... Note that every time I await I also check IsDisposed . It's necessary because say I await on a long running Task . Meanwhile the user closes the form before it completes. The Task will finish and run a continuation that attempts to access controls on a