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

            UIThread.InvokeTaskHelper <T>(func, tcs);
            return(tcs.Task);
        }
        public Task InvokeTask(Func <Task> func)
        {
            var tcs = new TaskCompletionSource <object>();

            UIThread.InvokeTaskHelper(func, tcs);
            return(tcs.Task);
        }