2009-12-29 42 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