[英]How to use BeginInvoke in VB.NET
在C#中,您可以这样使用BeginInvoke
:
obj.BeginInvoke((Action)(() =>
{
//do something
}));
我试图将其翻译为VB.NET,并最终获得了这段代码,这似乎可行:
obj.BeginInvoke(
Sub()
'do something'
End Sub
)
这些代码段对我来说看起来非常不同,特别是因为(Action) (() =>
部分完全丢失了。这是在VB.NET中使用BeginInvoke
的正确方法吗?
这不是 如何使用BeginInvoke C#的副本,因为问题和每个答案都使用C#(如果使用任何编程语言)。 当您不确定是否使用了正确的VB.NET语法时,C#代码无济于事。
是的, (Action) (() =>
不返回任何内容,因此VB.Net中的Sub
是等效的。如果确实返回了某些内容,则它将是C#中的Func。
(Action)
只是将lambda转换为Action
,这在VB.NET中是不需要的。 Sub()
lambda是您所需要的。
您的转换正确。
尽管注意BeginInvoke()
必须紧随EndInvoke()
,否则会发生线程泄漏。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.