2013-01-15 80 views
0

我只是試圖在VB中的一行異步執行一種否則阻塞方法。異步調用方法在一行

Dim action As New Action(Sub() MessageBox.Show("Hello")) 
action.BeginInvoke(Nothing, Nothing) 

在C#:

(new Action(() => MessageBox.Show("Hello"))).BeginInvoke(null, null); 

翻譯成VB

(New Action(Sub() MessageBox.Show("Hello"))).BeginInvoke(nothing, nothing) 

不能編譯。用括號開始行時出現語法錯誤。

任何解決方案?如果是,什麼?如果不是,爲什麼不呢?謝謝!

回答

3

我只是嘗試這樣做,有沒有問題:

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

謝謝@Ric,工程。似乎很簡單。我不知道他們爲什麼不讓我們做一個匿名的行動,只是像C#中的BeginInvoke那樣調用它# – djv

+1

不客氣。我不太確定爲什麼。這不是我使用的東西,但可能會看到我將來會做這樣的事情。只需要一個藉口來這樣做:) – Ric