c# - 如何在VB.NET中使用BeginInvoke

标签 c# .net vb.net begininvoke

在 C# 中,您使用 BeginInvoke像这样:

obj.BeginInvoke((Action)(() =>
{
    //do something
}));

我试图将它翻译成 VB.NET,最后得到了这段代码,这似乎有效:
obj.BeginInvoke(
    Sub()
        'do something'
    End Sub
)

这些片段在我看来非常不同,尤其是因为 (Action) (() =>部分完全丢失。这是使用 BeginInvoke 的正确方法吗?在 VB.NET 中?

这是不是 How to use BeginInvoke C# 的副本因为问题和每个答案都使用 C#(如果使用任何编程语言)。当您不确定是否使用了正确的 VB.NET 语法时,C# 代码没有多大帮助。

最佳答案

(Action)只是将 lambda 转换为 Action ,这在 VB.NET 中是不需要的。 Sub() lambda 就是你所需要的。

你得到了正确的转换。

虽然请注意 BeginInvoke()后面必须跟 EndInvoke() ,否则你会得到线程泄漏。

关于c# - 如何在VB.NET中使用BeginInvoke,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37278917/

相关文章:

c# - 插入前检查MySQL数据库中是否存在记录

vb.net - 如何在 VB.NET 中初始化 Dictionary(Of String, HashSet(Of String))?

c# - 超时缓冲任务数据

c# - 使用 ORM 创建数据库

asp.net - 我无法使用 sql 查询的输出填充列表框

c# - 当用户为操作系统字体大小选择 125% 或 150% 时,如何强制 Windows 窗体 C# 应用程序忽略?

C#.NET,回发发生在事件处理程序执行之前?

c# - 如何从 C++ COM 迁移到 C++CLI

.net - 使用 StructureMap 和 NET MVC 2 的 TryGetInstance 问题

c# - Fire and Forget 没有得到安排