Вопрос

У меня проблема с запуском следующего кода.

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.

Есть какие-нибудь предложения?Спасибо.

Это было полезно?

Решение

Я не эксперт по потоковой обработке, но если PostOperationCompleted ожидает обратного вызова SendOrPostCallback , попробуйте обернуть ваш triggerEvent следующим образом:заменить

asyncContext.PostOperationCompleted(triggerEvent, null)

Автор:

asyncContext.PostOperationCompleted(new SendOrPostCallback(triggerEvent), null)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top