public void OnStarting(Func <object, Task> callback, object state)
 {
     OnStartingCallbacks.Enqueue(new Tuple <Func <object, Task>, object>(callback, state));
 }