Actress.WaitHandleEx.ToTask C# (CSharp) Метод

ToTask() публичный статический Метод

public static ToTask ( this waitHandle, System.TimeSpan maxValue = null ) : Task
waitHandle this
maxValue System.TimeSpan
Результат Task
        public static Task<bool> ToTask(this WaitHandle waitHandle, TimeSpan? maxValue = null)
        {
            var tcs = new TaskCompletionSource<bool>();

            // Registering callback to wait till WaitHandle changes its state
            WaitOrTimerCallback callBack = (o, timeout) =>
            {
                tcs.SetResult(!timeout);
            };

            ThreadPool.RegisterWaitForSingleObject(waitHandle, callBack, null,
                maxValue ?? TimeSpan.MaxValue, true);

            return tcs.Task;
        }
WaitHandleEx