/// <summary> /// 异步回调一次完成通知 /// </summary> /// <param name="ar"></param> private void ReceiveTakesCompletedOnce(IAsyncResult ar) { if (ar == null) { throw new ArgumentNullException("ar"); } ReceiveTakesAWhileDelegate d1 = ar.AsyncState as ReceiveTakesAWhileDelegate; if (m_IsOpen) { Trace.Assert(d1 != null, "Invalid object type"); d1.BeginInvoke(ReceiveTakesCompletedOnce, d1); //再次回调 } else { d1.EndInvoke(ar); } }
private void InitCallback() { ReceiveTakesAWhileDelegate receiveAsyncTask = ReceiveCanDatas; receiveAsyncTask.BeginInvoke(ReceiveTakesCompletedOnce, receiveAsyncTask); }