Vb.net 一行异步调用方法

Vb.net 一行异步调用方法,vb.net,asynchronous,lambda,Vb.net,Asynchronous,Lambda,我只是尝试在VB的一行中异步执行一个阻塞方法 Dim操作作为新操作(Sub()MessageBox.Show(“Hello”)) 动作。开始激活(无,无) 在C#中: (新操作(()=>MessageBox.Show(“Hello”)).BeginInvoke(null,null); 翻译成VB (新操作(Sub()MessageBox.Show(“Hello”)).BeginInvoke(无,无) 不编译。以括号开始行时出现语法错误 有什么解决办法吗?如果是,什么?若否,原因为何?谢谢

我只是尝试在VB的一行中异步执行一个阻塞方法

Dim操作作为新操作(Sub()MessageBox.Show(“Hello”))
动作。开始激活(无,无)
在C#中:

(新操作(()=>MessageBox.Show(“Hello”)).BeginInvoke(null,null);
翻译成VB

(新操作(Sub()MessageBox.Show(“Hello”)).BeginInvoke(无,无)
不编译。以括号开始行时出现语法错误


有什么解决办法吗?如果是,什么?若否,原因为何?谢谢

我只是尝试了一下,没有问题:

Dim a = (New Action(Sub() MessageBox.Show("Hello"))).BeginInvoke(Nothing, Nothing)

我只是尝试了一下,没有任何问题:

Dim a = (New Action(Sub() MessageBox.Show("Hello"))).BeginInvoke(Nothing, Nothing)

谢谢@Ric,这很有效。看起来很简单。我想知道为什么他们不让我们采取匿名行动,然后像在C#中那样开始行动?不客气。我不太清楚为什么。这不是我使用的东西,但我可能会看到自己在未来做类似的事情。只需要一个借口就可以了:)谢谢@Ric,行得通。看起来很简单。我想知道为什么他们不让我们采取匿名行动,然后像在C#中那样开始行动?不客气。我不太清楚为什么。这不是我使用的东西,但我可能会看到自己在未来做类似的事情。只是需要一个借口:)