public IAsyncResult BeginCloseOutputSession (TimeSpan timeout, AsyncCallback callback, object state) { if (session_shutdown_delegate == null) session_shutdown_delegate = new Action<TimeSpan> (CloseOutputSession); return session_shutdown_delegate.BeginInvoke (timeout, callback, state); }