public async void StartAsyncTask(thread::SynchronizationContext context) { while (true) { if (!canceled) { await Task.Delay(Interval).ConfigureAwait(false); TaskAsyncTick.Invoke(context); } else { canceled = false; break; } } }
public void StartAsync(thread::SynchronizationContext context) { thread::ThreadPool.QueueUserWorkItem((x) => { while (true) { if (!canceled) { thread::Thread.Sleep(Interval); context.Post((xfail) => { AsyncTick.Invoke(); }, null); } else { canceled = false; break; } } }); }