dotnet/Documentation/compatibility/system_threading_tasks_task...

1.3 KiB

System.Threading.Tasks.Task no longer throw ObjectDisposedException after object is disposed

Scope

Minor

Version Introduced

4.5

Source Analyzer Status

Available

Change Description

Except for Task.IAsyncResult.AsyncWaitHandle, System.Threading.Tasks.Task methods no longer throw an ObjectDisposedException exception after the object is disposed.

This change supports the use of cached tasks. For example, a method can return a cached task to represent an already completed operation instead of allocating a new task. This was impossible in previous .NET Framework versions, because any consumer of the task could dispose of it, which rendered it unusable.

  • Quirked
  • Build-time break

Be aware that Task methods may no longer throw ObjectDisposedExceptions in cases when the object is disposed. If an app was depending on this exception to know that a task was disposed, it should be updated to explicitly check the task's status using Task.Status.

Affected APIs

  • Not detectable via API analysis

Category

Core

More information