public void IsCompleleted_DispatcherThread() { var awaitable = new MainThreadAwaitable(_mainThread); Thread.CurrentThread.ManagedThreadId.Should().Be(_mainThread.ThreadId); awaitable.GetAwaiter().IsCompleted.Should().Be(true); }
public void IsCompleleted_BackgroundThread() { var awaitable = new MainThreadAwaitable(_dispatcher); Thread.CurrentThread.Should().NotBe(_dispatcherThread); awaitable.GetAwaiter().IsCompleted.Should().Be(false); }
public void IsCompleleted_BackgroundThread() { var awaitable = new MainThreadAwaitable(_mainThread); Thread.CurrentThread.ManagedThreadId.Should().NotBe(_mainThread.ThreadId); awaitable.GetAwaiter().IsCompleted.Should().Be(false); }
public void GetResult_ThrowOnBackgroundThread() { var awaitable = new MainThreadAwaitable(_mainThread); Action a = () => awaitable.GetAwaiter().GetResult(); a.ShouldThrow <InvalidOperationException>(); }
public void GetResult_ThrowOnBackgroundThread() { var thread = Dispatcher.FromThread(UIThreadHelper.Instance.Thread); var awaitable = new MainThreadAwaitable(thread); Action a = () => awaitable.GetAwaiter().GetResult(); a.ShouldThrow <InvalidOperationException>(); }
public void GetResult_ThrowOnBackgroundThread() { var cts = new CancellationTokenSource(); var awaitable = new MainThreadAwaitable(_mainThread, cts.Token); cts.Cancel(); Action a = () => awaitable.GetAwaiter().GetResult(); a.ShouldThrow <OperationCanceledException>(); }
public async Task Await_OnDispatcherThread() { var awaitable = new MainThreadAwaitable(_mainThread); await awaitable; Thread.CurrentThread.ManagedThreadId.Should().Be(_mainThread.ThreadId); Action a = () => awaitable.GetAwaiter().GetResult(); a.ShouldNotThrow(); }
public async Task Await_BackgroundThread() { var awaitable = new MainThreadAwaitable(_dispatcher); await awaitable; Thread.CurrentThread.Should().Be(_dispatcherThread); Action a = () => awaitable.GetAwaiter().GetResult(); a.ShouldNotThrow(); }
public AwaitableWrapper(MainThreadAwaitable awaitable) { getAwaiter = () => new AwaiterWrapper(awaitable.GetAwaiter()); }