public QQActionEvent WaitEvent(long timeoutMs) { QQActionEvent Event = null; if (!_hasEvent) { return(null); } try { _eventQueue.TryTake(out Event, (int)timeoutMs); } catch (Exception e) { // throw new QQException(QQErrorCode.WAIT_INTERUPPTED, e); NotifyActionEvent(QQActionEventType.EVT_ERROR, new QQException(QQErrorCode.WAIT_INTERUPPTED, e)); } if (Event == null) { // throw new QQException(QQErrorCode.WAIT_TIMEOUT); NotifyActionEvent(QQActionEventType.EVT_ERROR, new QQException(QQErrorCode.WAIT_TIMEOUT)); } else { _hasEvent = !IsFinalEvent(Event); } return(Event); }
public QQActionEvent WaitFinalEvent() { if (EventQueue.IsAddingCompleted) { return(FinalEvent); } while (!Token.IsCancellationRequested) { try { var Event = WaitEvent(); if (IsFinalEvent(Event)) { EventQueue.CompleteAdding(); FinalEvent = Event; return(FinalEvent); } } catch (OperationCanceledException) { FinalEvent = new QQActionEvent(QQActionEventType.EvtCanceled, this); return(FinalEvent); } catch (Exception ex) { FinalEvent = new QQActionEvent(QQActionEventType.EvtError, ex); return(FinalEvent); } } FinalEvent = new QQActionEvent(QQActionEventType.EvtCanceled, this); return(FinalEvent); }
private bool IsFinalEvent(QQActionEvent Event) { var type = Event.Type; return(type == QQActionEventType.EvtCanceled || type == QQActionEventType.EvtError || type == QQActionEventType.EvtOK); }
private bool IsFinalEvent(QQActionEvent Event) { QQActionEventType type = Event.Type; return(type == QQActionEventType.EVT_CANCELED || type == QQActionEventType.EVT_ERROR || type == QQActionEventType.EVT_OK); }
public QQActionEvent WaitFinalEvent() { QQActionEvent Event = null; while ((Event = WaitEvent()) != null) { if (IsFinalEvent(Event)) { return(Event); } } return(new QQActionEvent(QQActionEventType.EVT_ERROR, this)); }
public QQActionEvent WaitEvent() { if (!_hasEvent) { return(null); } try { QQActionEvent Event = _eventQueue.Take(); _hasEvent = !IsFinalEvent(Event); return(Event); } catch (ThreadInterruptedException e) { throw new QQException(QQErrorCode.WAIT_INTERUPPTED, e); } }
public QQActionEvent WaitFinalEvent(long timeoutMs) { QQActionEvent Event = null; long start = DateTime.Now.CurrentTimeMillis(); while ((Event = WaitEvent(timeoutMs)) != null) { long end = DateTime.Now.CurrentTimeMillis(); if (IsFinalEvent(Event)) { return(Event); } else { timeoutMs -= end - start; start = DateTime.Now.CurrentTimeMillis(); } } return(new QQActionEvent(QQActionEventType.EVT_ERROR, this)); }
private bool IsFinalEvent(QQActionEvent Event) { var type = Event.Type; return type == QQActionEventType.EvtCanceled || type == QQActionEventType.EvtError || type == QQActionEventType.EvtOK; }
public QQActionEvent WaitFinalEvent() { if (EventQueue.IsAddingCompleted) return FinalEvent; while (!Token.IsCancellationRequested) { try { var Event = WaitEvent(); if (IsFinalEvent(Event)) { EventQueue.CompleteAdding(); FinalEvent = Event; return FinalEvent; } } catch (OperationCanceledException) { FinalEvent = new QQActionEvent(QQActionEventType.EvtCanceled, this); return FinalEvent; } catch (Exception ex) { FinalEvent = new QQActionEvent(QQActionEventType.EvtError, ex); return FinalEvent; } } FinalEvent = new QQActionEvent(QQActionEventType.EvtCanceled, this); return FinalEvent; }
private bool IsFinalEvent(QQActionEvent Event) { QQActionEventType type = Event.Type; return type == QQActionEventType.EVT_CANCELED || type == QQActionEventType.EVT_ERROR || type == QQActionEventType.EVT_OK; }