熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

關於webservice的異步調用實例

2013-11-13 10:18:28  來源: .NET編程 

  關於webservice的異步調用簡單實例
無論在任何情況下被調用方的代碼無論是被異步調用還是同步調用的情況下被調用方的代碼都是一樣的

  下面我們就以異步調用一個webservice 為例作說明
這是一個webservice

  _
    Public Function delCurTable(ByVal tbName As String) As Boolean
        Try
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

  關於這個webservice的同步調用方法我就不做說明了
異步調用
 Private a As vbwebserviceDataManage定義一個webservice變量
  Dim ar As IAsyncResult
public sub Callback(byval ar as IAsyncResult)
這裡可以不寫任何代碼
這裡的代碼在調用方運行結束後開始運行
end sub

  #region 異步調用
private sub btnStart_Click()
dim cb as asyncallback=new asyncallback(address(mecallback))
ar=abegindelcurtable(zdfcba)
end sub

  private sub btnEnd_Click()
if ar is nothing then
exit sub
end if
if  arIsCompleted Then
dim m as boolean=aenddelcurtable(ar)
messageboxshow(mtostring)
end if
end sub
#end region
注意返回異步調用的結果一次只能調用一次如果想再執行一遍就必須重新執行一遍begin的方法
以上是的用法下面是c#的用法
CWebServiceDataManage  a;
  SystemIAsyncResult ar;
  private void Form_Load(object sender SystemEventArgs e)
  {
   a=new CWebServiceDataManage();
  }

  public void CallBack(SystemIAsyncResult ar)
  {
  }

  private void btnStart_Click(object sender SystemEventArgs e)
  {
   SystemAsyncCallback cb=new AsyncCallback(thisCallBack);
   ar=aBegindelCurTable(zhangcba);
  }

  private void btnEnd_Click(object sender SystemEventArgs e)
  {
   if(ar==null)
   {
    MessageBoxShow(null);
    return ;
   }
   if(arIsCompleted )
   {
    bool m=aEnddelCurTable(ar);
    MessageBoxShow(mToString());
   }
   else
   {
    MessageBoxShow(為完成);
   }
  }


From:http://tw.wingwit.com/Article/program/net/201311/13208.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.