2009-05-05 69 views
0

產卵線程時的錯誤是:不兼容的簽名與ThreadPool.QueueUserWorkitem

法「私人小組ProcessToolWork()」 沒有與委託「代表小組簽名兼容 WaitCallback(狀態爲對象) 」。

這裏的交易是什麼?我從來沒有遇到過這種以這種方式產生線程的錯誤。

這裏是我的例行程序定義:

Public Sub ProcessWork() 
     ThreadPool.QueueUserWorkItem(AddressOf ProcessToolWork) 
End Sub 

Private Sub ProcessToolWork() 

End Sub 

看到什麼問題?

我也試着做一個新的WaitCallback爲這個項目像這樣:

ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf ProcessToolWork)) 

回答

3

WaitCallback需要state參數(類型Object的)。即使你忽略它,你也必須把它放在你的方法簽名中:

Private Sub ProcessToolWork(ByVal ignored As Object) 

End Sub 
+0

這僅在Options Explicit打開時纔有必要嗎? – Daniel 2009-05-05 15:05:32

0

我剛剛自己也遇到過這個東西。在進行「最終」編譯之前,我將Option Strict變爲「on」,並且出現此錯誤。

注意:這是Option Strict,不是Option Explicit。

因此,如果您嘗試使用Option Strict on進行編譯,則僅需提供「Byval ignored As Object」參數。

相關問題