Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Dispose() [4/4]

virtual void System.Threading.Tasks.Task< TResult >.Dispose ( bool disposing)
inlineprotectedvirtualinherited

Definition at line 1672 of file Task.cs.

1673 {
1674 if (disposing)
1675 {
1676 if ((Options & (TaskCreationOptions)16384) != 0)
1677 {
1678 return;
1679 }
1680 if (!IsCompleted)
1681 {
1682 ThrowHelper.ThrowInvalidOperationException(ExceptionResource.Task_Dispose_NotCompleted);
1683 }
1684 ContingentProperties contingentProperties = Volatile.Read(ref m_contingentProperties);
1685 if (contingentProperties != null)
1686 {
1687 ManualResetEventSlim completionEvent = contingentProperties.m_completionEvent;
1688 if (completionEvent != null)
1689 {
1690 contingentProperties.m_completionEvent = null;
1691 if (!completionEvent.IsSet)
1692 {
1693 completionEvent.Set();
1694 }
1695 completionEvent.Dispose();
1696 }
1697 }
1698 }
1699 m_stateFlags |= 262144;
1700 }
ContingentProperties m_contingentProperties
Definition Task.cs:964
TaskCreationOptions Options
Definition Task.cs:981
volatile int m_stateFlags
Definition Task.cs:954

References System.Threading.Tasks.Task< TResult >.IsCompleted, System.Threading.Tasks.Task< TResult >.m_contingentProperties, System.Threading.Tasks.Task< TResult >.m_stateFlags, System.Threading.Tasks.Task< TResult >.Options, System.Threading.Volatile.Read(), and System.ThrowHelper.ThrowInvalidOperationException().