使用委托不是可以帮助处理一些异步情况吗?我尝试了以下操作,但我的用户界面仍然挂起。你到底什么时候使用代表?
Public Class Form1
Private Delegate Sub testDelegate()
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
Dim d As testDelegate = New testDelegate(AddressOf Add)
d.Invoke()
End Sub
Private Sub Add()
For i As Integer = 0 To 10000
TextBox1.Text = i + 1
Next
End Sub
End Class
正如 Joel 所提到的 - BeginInvoke() 将异步执行委托 - 如果目标返回数据(使用 EndInvoke),您将需要设置一个异步回调来检索返回值。
以下链接是一篇关于使用委托进行异步编程的好文章:http://msdn.microsoft.com/en-us/library/2e08f6yc.aspx http://msdn.microsoft.com/en-us/library/2e08f6yc.aspx
另外(这是在 C# 中 - 抱歉)您可以使用 lambda 表达式处理回调:
Action myAction = () => Console.WriteLine("This is an async call!");
myAction.BeginInvoke(asyncResult => Console.WriteLine("Async Done!"), null);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)