private void ExecuteQueuedActionsOnMainThread() { var queue = Interlocked.Exchange(ref _actions, _backupQueue); foreach (Action a in queue) { a(); } queue.Clear(); }