System.Threading.ThreadPool.RegisterWaitForSingleObject C# (CSharp) Method

RegisterWaitForSingleObject() public static method

public static RegisterWaitForSingleObject ( System waitObject, System callBack, object state, System timeout, bool executeOnlyOnce ) : System.Threading.RegisteredWaitHandle
waitObject System
callBack System
state object
timeout System
executeOnlyOnce bool
return System.Threading.RegisteredWaitHandle
        public static System.Threading.RegisteredWaitHandle RegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, System.TimeSpan timeout, bool executeOnlyOnce)
        {
            throw null;
        }

Same methods

ThreadPool::RegisterWaitForSingleObject ( System waitObject, System callBack, object state, int millisecondsTimeOutInterval, bool executeOnlyOnce ) : System.Threading.RegisteredWaitHandle
ThreadPool::RegisterWaitForSingleObject ( System waitObject, System callBack, object state, long millisecondsTimeOutInterval, bool executeOnlyOnce ) : System.Threading.RegisteredWaitHandle
ThreadPool::RegisterWaitForSingleObject ( System waitObject, System callBack, object state, uint millisecondsTimeOutInterval, bool executeOnlyOnce ) : System.Threading.RegisteredWaitHandle

Usage Example

        public static Task WaitAsync(this SemaphoreSlim semaphore)
        {
            if (semaphore.Wait(0))
            {
                return(TaskEx.TaskCompleted);
            }
            var tcs = new TaskCompletionSource <bool>();
            WaitOrTimerCallback waitOrTimerCallback = null;

            waitOrTimerCallback = (state, timedOut) =>
            {
                if (semaphore.Wait(0))
                {
                    tcs.TrySetResult(true);
                    return;
                }
                ThreadPool.RegisterWaitForSingleObject(semaphore.AvailableWaitHandle, waitOrTimerCallback, null, Timeout.Infinite, true);
            };
            waitOrTimerCallback(null, false);
            return(tcs.Task);
        }
All Usage Examples Of System.Threading.ThreadPool::RegisterWaitForSingleObject