public async Task Test_DispatcherQueueHelper_Action_Ok_NonUIThread() { var taskSource = new TaskCompletionSource <object>(); await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync( CoreDispatcherPriority.Normal, async() => { try { var dispatcherQueue = DispatcherQueue.GetForCurrentThread(); await Task.Run(async() => { await DispatcherQueueHelper.ExecuteOnUIThreadAsync(dispatcherQueue, () => { var textBlock = new TextBlock { Text = nameof(Test_DispatcherQueueHelper_Action_Ok_NonUIThread) }; Assert.AreEqual(textBlock.Text, nameof(Test_DispatcherQueueHelper_Action_Ok_NonUIThread)); taskSource.SetResult(null); }); }); } catch (Exception e) { taskSource.SetException(e); } }); await taskSource.Task; }
public void Test_DispatcherQueueHelper_Action_Ok_UIThread() { DispatcherQueueHelper.ExecuteOnUIThreadAsync(DispatcherQueue.GetForCurrentThread(), () => { var textBlock = new TextBlock { Text = nameof(Test_DispatcherQueueHelper_Action_Ok_UIThread) }; Assert.AreEqual(textBlock.Text, nameof(Test_DispatcherQueueHelper_Action_Ok_UIThread)); }).Wait(); }
public void Test_DispatcherQueueHelper_FuncOfT_Ok_UIThread() { var textBlock = DispatcherQueueHelper.ExecuteOnUIThreadAsync(DispatcherQueue.GetForCurrentThread(), () => { return(new TextBlock { Text = nameof(Test_DispatcherQueueHelper_FuncOfT_Ok_UIThread) }); }).Result; Assert.AreEqual(textBlock.Text, nameof(Test_DispatcherQueueHelper_FuncOfT_Ok_UIThread)); }
public void Test_DispatcherQueueHelper_Action_Exception() { var task = DispatcherQueueHelper.ExecuteOnUIThreadAsync(DispatcherQueue.GetForCurrentThread(), () => { throw new ArgumentException(nameof(this.Test_DispatcherQueueHelper_Action_Exception)); }); Assert.IsNotNull(task); Assert.AreEqual(task.Status, TaskStatus.Faulted); Assert.IsNotNull(task.Exception); Assert.IsInstanceOfType(task.Exception.InnerExceptions.FirstOrDefault(), typeof(ArgumentException)); }
public void Test_DispatcherQueueHelper_FuncOfTaskOfT_Ok_UIThread() { DispatcherQueueHelper.ExecuteOnUIThreadAsync(DispatcherQueue.GetForCurrentThread(), () => { var textBlock = new TextBlock { Text = nameof(Test_DispatcherQueueHelper_FuncOfTaskOfT_Ok_UIThread) }; Assert.AreEqual(textBlock.Text, nameof(Test_DispatcherQueueHelper_FuncOfTaskOfT_Ok_UIThread)); return(Task.FromResult(1)); }).Wait(); }
public void Test_DispatcherQueueHelper_FuncOfT_Null() { DispatcherQueueHelper.ExecuteOnUIThreadAsync(DispatcherQueue.GetForCurrentThread(), default(Func <int>)); }
public void Test_DispatcherQueueHelper_Action_Null() { DispatcherQueueHelper.ExecuteOnUIThreadAsync(DispatcherQueue.GetForCurrentThread(), default(Action)); }