繁体   English   中英

如何在VB.NET中使用BeginInvoke

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM