【问题标题】:F# Type Inference and System.ObjectF# 类型推断和 System.Object
【发布时间】:2009-12-29 11:02:53
【问题描述】:

我无法让以下代码正常工作。

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 -> unit 而不是 Object -> unit。我将 state 明确声明为 Object,但它仍然是 'a.

有什么建议吗?谢谢。

【问题讨论】:

    标签: f# object types inference


    【解决方案1】:

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

    asyncContext.PostOperationCompleted(triggerEvent, null)
    

    通过

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

    【讨论】:

    • 谢谢!这就是我一直在寻找的。​​span>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 2012-07-17
    • 1970-01-01
    相关资源
    最近更新 更多