public Task <T> InvokeAsync <T>(Func <T> func)
        {
            var tcs = new TaskCompletionSource <T>();

            UIThread.InvokeAsyncHelper <T>(func, tcs);
            return(tcs.Task);
        }
        public Task InvokeAsync(Action action)
        {
            var tcs = new TaskCompletionSource <object>();

            UIThread.InvokeAsyncHelper(action, tcs);
            return(tcs.Task);
        }
示例#3
0
        public override Task <T> InvokeAsync <T>(Func <T> func, CancellationToken cancellationToken)
        {
            var tcs = new TaskCompletionSource <T>();

            if (cancellationToken.CanBeCanceled)
            {
                cancellationToken.Register(() => tcs.TrySetCanceled());
            }
            UIThread.InvokeAsyncHelper <T>(func, tcs);
            return(tcs.Task);
        }
示例#4
0
        public override Task InvokeAsync(Action action, CancellationToken cancellationToken)
        {
            var tcs = new TaskCompletionSource <object>();

            if (cancellationToken.CanBeCanceled)
            {
                cancellationToken.Register(() => tcs.TrySetCanceled());
            }
            UIThread.InvokeAsyncHelper(action, tcs);
            return(tcs.Task);
        }