public bool WaitForEvent(int TimeOut, REAjetSerialEventEnum REAjetEvent) { bool Result = false; AutoResetEvent AsyncWaitHandle = null; LogSession.EnterMethod(this, "WaitForEvent"); try { switch (REAjetEvent) { case REAjetSerialEventEnum.AcknowledgmentReceived: AsyncWaitHandle = this.m_AsyncAckWaitHandle; break; case REAjetSerialEventEnum.TelegramReceived: AsyncWaitHandle = this.m_AsyncTelegramWaitHandle; break; } if (AsyncWaitHandle != null) { LogSession.LogMessage(" Waiting {0} [ms] for event {1}", TimeOut.ToString(), REAjetEvent.ToString()); Result = AsyncWaitHandle.WaitOne(TimeOut, false); } else { Result = false; } //if (!Result && (AsyncWaitHandle != null)) // AsyncWaitHandle.Set(); } catch (Exception ex) { LogSession.LogException(ex); throw ex; } finally { LogSession.LeaveMethod(this, "WaitForEvent"); } return Result; }
public void SetFlagEvent(REAjetSerialEventEnum REAjetEvent) { try { LogSession.EnterMethod(this, "SetFlagEvent"); /*--------- Your code goes here-------*/ AutoResetEvent AsyncWaitHandle = null; switch (REAjetEvent) { case REAjetSerialEventEnum.AcknowledgmentReceived: AsyncWaitHandle = this.m_AsyncAckWaitHandle; break; case REAjetSerialEventEnum.TelegramReceived: AsyncWaitHandle = this.m_AsyncTelegramWaitHandle; break; } LogSession.LogMessage(" Event {0} set", REAjetEvent.ToString()); AsyncWaitHandle.Set(); /*------------------------------------*/ } catch (Exception ex) { LogSession.LogException(ex); throw ex; } finally { LogSession.LeaveMethod(this, "SetFlagEvent"); } }