VB.NET中的非同步呼叫

來源:互聯網
上載者:User

 

private delegate Sub (()sub(or Function )()function) dele_1   
     private dele_2 as dele_1
     private iasyync_test as IAsyncResult
     在form_load裡面
      Private Sub Form1_Load()Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        dele_2 = New dele_1(AddressOf test1)      'test1 是你想要非同步呼叫的方法
        iasync_test=dele_2.begininvoke(nothing,nothing)  '開始非同步呼叫
    End Sub

     ' 如果想知道非同步呼叫是否完成,加個button。
     Private Sub Button2_Click()Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If iasync.IsCompleted = True Then  '已經完成調用
                     dele_2.endinvoke(iasync)
                    Else                    '未完成
            MessageBox.Show("not finished!")
        End If       
    End Sub
   ' 另外你也可以自己寫個回掉函數,在非同步呼叫完成的時候進行別的操作。
  Private Sub Form1_Load()Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        dele_2 = New dele_1(AddressOf test1)      'test1 是你想要非同步呼叫的方法
                dim ab as asynccallback
       ab=new asynccallback(address of back_test)    'back_test是要進行回掉的函數
       iasync_test=dele_2.begininvoke(ab,nothing)    '開始非同步呼叫
    End Sub

    private Sub back_test()sub back_test()
         '想進行的操作。
         dele_2.endinvoke(iasync_test)
   end sub

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.