public bool Wait(BacnetAddress adr, byte invoke_id, int timeout)
{
System.Threading.Monitor.Enter(m_lockObject);
while (!adr.Equals(this.adr) || this.invoke_id != invoke_id)
{
m_wait.Reset();
System.Threading.Monitor.Exit(m_lockObject);
if (!m_wait.WaitOne(timeout)) return false;
System.Threading.Monitor.Enter(m_lockObject);
}
System.Threading.Monitor.Exit(m_lockObject);
this.adr = null;
return true;
}