Domanda

Ho un problema ottenere il seguente codice funzioni.

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)

ottengo un errore, che triggerEvent è di tipo 'a -> unità invece di SendOrPostCallback. SendOrPostCallback è di tipo Object -> unità. Mi chiedo perché triggerEvent è di tipo 'a - unità> -> unità invece di oggetto. Ho esplicitamente dichiarato stato come oggetto e ancora si tratta di 'una.

Qualche suggerimento? Grazie.

È stato utile?

Soluzione

Io non sono un esperto di threading, ma se si aspetta un PostOperationCompleted SendOrPostCallback, provare avvolgendo il triggerEvent in questo modo: sostituire

asyncContext.PostOperationCompleted(triggerEvent, null)

da

asyncContext.PostOperationCompleted(new SendOrPostCallback(triggerEvent), null)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top