public async Task StartAsync() { HasStarted = true; while (OnStartingCallbacks.Count > 0) { (Func <object, Task> callback, object state) = OnStartingCallbacks.Dequeue(); if (callback != null) { await callback.Invoke(state).ConfigureAwait(false); } } }
public void OnStarting(Func <object, Task> callback, object state) { OnStartingCallbacks.Enqueue(new Tuple <Func <object, Task>, object>(callback, state)); }