private void ShutdownEndpoint(AsyncTask task, object state) { if (m_endpoint == null) { task.Complete(null); return; } task.DoOneStep( delegate() { Logger.Log(Logger.LogLevel.Info, "Terminating Application Endpoint."); m_endpoint.BeginTerminate( delegate(IAsyncResult ar) { task.DoFinalStep( delegate() { m_endpoint.EndTerminate(ar); Logger.Log(Logger.LogLevel.Info, "Terminated Application Endpoint."); }); }, null); }); }