在C#中,您使用BeginInvoke
,如下所示:
obj.BeginInvoke((Action)(() =>
{
//do something
}));
我试图将它翻译成VB.NET,最后得到了这段代码,这似乎有效:
obj.BeginInvoke(
Sub()
'do something'
End Sub
)
这些片段与我看起来非常不同,特别是因为(Action) (() =>
部分完全缺失。这是在VB.NET中使用BeginInvoke
的正确方法吗?
这是{strong>不重复How to use BeginInvoke C#,因为问题和每个答案都使用C#(如果使用任何编程语言)。当您不确定是否使用了正确的VB.NET语法时,C#-code没有多大帮助。
答案 0 :(得分:1)
是的,(Action) (() =>
不会返回任何内容,因此VB.Net中的Sub
是等效的。如果它确实返回了某些内容,它将成为C#中的Func。
答案 1 :(得分:1)
(Action)
只是将lambda转换为Action
,这在VB.NET中是不需要的。 Sub()
lambda就是你所需要的。
您获得了正确的转化。
虽然请注意BeginInvoke()
必须后跟EndInvoke()
,否则会导致线程泄漏。