public void EndConnect(IAsyncResult ar) { AsyncResult a = (AsyncResult)ar; ConnectDelegate d = (ConnectDelegate)a.AsyncDelegate; d.EndInvoke(ar); }
/// <summary> /// 处理异步接收连接的结束 /// </summary> /// <param name="ar">一个表示异步调用的 IAsyncResult。</param> public void EndConnect(IAsyncResult ar) { if (ar == null) { throw new NullReferenceException("Argument ar can't be null"); } connectDelegate.EndInvoke(ar); }
static void ConnectAsync(SSBIServer srv, TreeView tv, TreeNode connNode) { Server serv = null; try { ConnectDelegate cd = new ConnectDelegate(smo.CreateServer2); IAsyncResult iar = cd.BeginInvoke(srv, null, null); while (!iar.IsCompleted) { //TVSetUp.SetStatusText(tv, toolStripStatusLabel1, string.Format("Connecting to: {0}", srv.Name)); Thread.Sleep(50); } serv = cd.EndInvoke(iar); ConnectCompleted(srv, serv, tv, connNode, true, null); } catch (Exception e) { ConnectCompleted(srv, serv, tv, connNode, false, e.Message); } }