private void OnGlobalOperationStopped(object sender, GlobalOperationEventArgs e) { Contract.ThrowIfFalse(_globalOperation != null); // events are serialized. no lock is needed _globalOperation.SetResult(null); _globalOperation = null; // set to empty task so that we don't need a lock _globalOperationTask = SpecializedTasks.EmptyTask; }
protected virtual Task RaiseGlobalOperationStopped(IReadOnlyList<string> operations, bool cancelled) { var ev = _eventMap.GetEventHandlers<EventHandler<GlobalOperationEventArgs>>(GlobalOperationStoppedEventName); if (ev.HasHandlers) { var args = new GlobalOperationEventArgs(operations, cancelled); return _eventQueue.ScheduleTask(() => { ev.RaiseEvent(handler => handler(this, args)); }); } return SpecializedTasks.EmptyTask; }
private void OnGlobalOperationStopped(object sender, GlobalOperationEventArgs e) { if (_globalOperation == null) { // we subscribed to the event while it is already running. return; } // events are serialized. no lock is needed _globalOperation.SetResult(null); _globalOperation = null; // set to empty task so that we don't need a lock _globalOperationTask = SpecializedTasks.EmptyTask; }
protected virtual Task RaiseGlobalOperationStopped(IReadOnlyList <string> operations, bool cancelled) { var ev = _eventMap.GetEventHandlers <EventHandler <GlobalOperationEventArgs> >(GlobalOperationStoppedEventName); if (ev.HasHandlers) { var args = new GlobalOperationEventArgs(operations, cancelled); return(_eventQueue.ScheduleTask(() => { ev.RaiseEvent(handler => handler(this, args)); })); } return(SpecializedTasks.EmptyTask); }
protected virtual Task RaiseGlobalOperationStoppedAsync(IReadOnlyList <string> operations, bool cancelled) { var ev = _eventMap.GetEventHandlers <EventHandler <GlobalOperationEventArgs> >(GlobalOperationStoppedEventName); if (ev.HasHandlers) { var asyncToken = _listener.BeginAsyncOperation("GlobalOperationStopped"); var args = new GlobalOperationEventArgs(operations, cancelled); return(_eventQueue.ScheduleTask(() => { ev.RaiseEvent(handler => handler(this, args)); }).CompletesAsyncOperation(asyncToken)); } return(Task.CompletedTask); }
protected virtual Task RaiseGlobalOperationStopped(IReadOnlyList<string> operations, bool cancelled) { var handlers = _eventMap.GetEventHandlers<EventHandler<GlobalOperationEventArgs>>(GlobalOperationStoppedEventName); if (handlers.Length > 0) { var args = new GlobalOperationEventArgs(operations, cancelled); return _eventQueue.ScheduleTask(() => { foreach (var handler in handlers) { handler(this, args); } }); } return SpecializedTasks.EmptyTask; }
protected virtual Task RaiseGlobalOperationStopped(IReadOnlyList<string> operations, bool cancelled) { var handlers = this.eventMap.GetEventHandlers<EventHandler<GlobalOperationEventArgs>>(GlobalOperationStoppedEventName); if (handlers != null) { var args = new GlobalOperationEventArgs(operations, cancelled); return this.eventQueue.ScheduleTask(() => { foreach (var handler in handlers) { handler(this, args); } }); } return SpecializedTasks.EmptyTask; }