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

◆ RegisterForCancellation()

unsafe void System.IO.Pipes.PipeStream.PipeValueTaskSource.RegisterForCancellation ( CancellationToken cancellationToken)
inlinepackageinherited

Definition at line 82 of file PipeStream.cs.

83 {
84 if (!cancellationToken.CanBeCanceled)
85 {
86 return;
87 }
88 try
89 {
90 _cancellationRegistration = cancellationToken.UnsafeRegister(delegate(object s, CancellationToken token)
91 {
92 PipeValueTaskSource pipeValueTaskSource = (PipeValueTaskSource)s;
93 if (!pipeValueTaskSource._pipeStream.SafePipeHandle.IsInvalid)
94 {
95 try
96 {
97 global::Interop.Kernel32.CancelIoEx(pipeValueTaskSource._pipeStream.SafePipeHandle, pipeValueTaskSource._overlapped);
98 }
99 catch (ObjectDisposedException)
100 {
101 }
102 }
103 }, this);
104 }
105 catch (OutOfMemoryException)
106 {
107 }
108 }
CancellationTokenRegistration _cancellationRegistration
Definition PipeStream.cs:29

References System.IO.Pipes.PipeStream.PipeValueTaskSource.PipeValueTaskSource(), System.IO.Pipes.PipeStream.PipeValueTaskSource._cancellationRegistration, System.IO.Pipes.PipeStream.PipeValueTaskSource._overlapped, System.IO.Pipes.PipeStream.PipeValueTaskSource._pipeStream, System.cancellationToken, Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid.IsInvalid, System.s, and System.IO.Pipes.PipeStream.SafePipeHandle.

Referenced by System.IO.Pipes.PipeStream.ReadAsyncCore(), System.IO.Pipes.NamedPipeServerStream.WaitForConnectionCoreAsync(), and System.IO.Pipes.PipeStream.WriteAsyncCore().