我在使用以下代码时遇到问题。
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 - >单元。我想知道为什么triggerEvent是'a - >类型单位代替对象 - >单元。我明确地将state声明为Object,但仍然是'a。
有什么建议吗?谢谢。
答案 0 :(得分:2)
我不是线程专家,但如果PostOperationCompleted需要SendOrPostCallback,请尝试包装您的triggerEvent,如下所示: 替换
asyncContext.PostOperationCompleted(triggerEvent, null)
通过
asyncContext.PostOperationCompleted(new SendOrPostCallback(triggerEvent), null)