2

我在使以下代码正常工作时遇到问题。

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 -> unit 而不是 SendOrPostCallback。SendOrPostCallback 的类型是 Object -> unit。我想知道为什么 triggerEvent 的类型是 'a -> unit 而不是 Object -> unit。我明确地将状态声明为对象,但它仍然是'a。

有什么建议么?谢谢你。

4

1 回答 1

2

我不是线程专家,但如果 PostOperationCompleted 需要 SendOrPostCallback,请尝试像这样包装您的 triggerEvent:替换

asyncContext.PostOperationCompleted(triggerEvent, null)

经过

asyncContext.PostOperationCompleted(new SendOrPostCallback(triggerEvent), null)
于 2009-12-29T13:19:26.770 回答