2009-12-29 65 views
2

我有一個問題讓下面的代碼工作。F#類型推理和System.Object

open System 
open System.ComponentModel 
open System.Threading 

let triggerEvent (state : Object) = Console.Write("Do Something.") 

let asyncContext = AsyncOperationManager.CreateOperation(null) 
asyncContext.PostOperationCompleted(triggerEvent, null) 

我得到一個錯誤,那triggerEvent的類型是'a - >單元而不是SendOrPostCallback。 SendOrPostCallback的類型是Object - > unit。我想知道爲什麼triggerEvent是'a - >單元而不是Object - >單元的類型。我明確地聲明狀態爲Object,並且仍然是'a。

有什麼建議嗎?謝謝。

回答

2

我不是線程方面的專家,但如果PostOperationCompleted需要一個SendOrPostCallback,試試你的包裹triggerEvent這樣的:通過

asyncContext.PostOperationCompleted(new SendOrPostCallback(triggerEvent), null) 
+0

謝謝您更換

asyncContext.PostOperationCompleted(triggerEvent, null) 

!這就是我一直在尋找的。 – PetPaulsen 2009-12-29 13:29:01