public void TimerEvent(int id)
{
// Linger period expired. We can proceed with termination even though
// there are still pending messages to be sent.
Debug.Assert(id == LingerTimerId);
m_hasLingerTimer = false;
// Ask pipe to terminate even though there may be pending messages in it.
Debug.Assert(m_pipe != null);
m_pipe.Terminate(false);
}