System.Threading.ThreadPoolBoundHandle.FreeNativeOverlapped C# (CSharp) Метод

FreeNativeOverlapped() приватный Метод

private FreeNativeOverlapped ( NativeOverlapped overlapped ) : void
overlapped NativeOverlapped
Результат void
        public unsafe void FreeNativeOverlapped(NativeOverlapped* overlapped)
        {
            if (overlapped == null)
                throw new ArgumentNullException(nameof(overlapped));

            Win32ThreadPoolNativeOverlapped* threadPoolOverlapped = Win32ThreadPoolNativeOverlapped.FromNativeOverlapped(overlapped);
            Win32ThreadPoolNativeOverlapped.OverlappedData data = GetOverlappedData(threadPoolOverlapped, this);

            if (!data._completed)
            {
                Interop.Kernel32.CancelThreadpoolIo(_threadPoolHandle);
                Release();
            }

            data._boundHandle = null;
            data._completed = false;

            if (data._preAllocated != null)
                data._preAllocated.Release();
            else
                Win32ThreadPoolNativeOverlapped.Free(threadPoolOverlapped);
        }

Same methods

ThreadPoolBoundHandle::FreeNativeOverlapped ( System overlapped ) : void