private async Task InvokeEventAction() { try { while (!_cancellationTokenSource.IsCancellationRequested) { var serializedEvent = await _eventChannel.Reader.ReadAsync(_cancellationTokenSource.Token).ConfigureAwait(false); try { var envelope = _serializer.DeserializeEventEnvelope(serializedEvent); _eventInvoker.Invoke(envelope.Body); } catch (Exception e) { e.Data["Event"] = serializedEvent; _logger.LogError(e, "Исключение при обработке события."); } } } catch (OperationCanceledException e) { _logger.LogTrace(e, "Обработка событий от терминала Quik остановлена."); } catch (Exception e) { _logger.LogError(e, "Исключение при обработке событий."); _cancellationTokenSource.Cancel(); throw new QuikSharpException("Исключение при обработке событий.", e); } }
public void Invoke(EventType @event) { LogEnter(@event, GetSet.Get(@event).GetInvocationList().Length - 1); proxy.Invoke(@event); LogExit(@event); }