static async Task Main() { SynchronizationContext.SetSynchronizationContext(new MySynchronizationContext()); var awaitable = new MyAwaitable(false); var timer = new Timer(_ => awaitable.Finish(), null, 100, -1); var result = await awaitable; Console.WriteLine(result); }
private void buttonStopUIThread_Click(object sender, EventArgs e) => awaitable.Finish(new Random().Next());