2010-06-16 19 views
6

C'è un modo per esaminare la definizione del flusso di lavoro Async? Cosa va sotto il cofano che farebbe sì che una linea di codice si comporti diversamente là fuori che fuori?F # Flusso di lavoro asincrono

risposta

5

Se per "flusso di lavoro asincrono" si intende il tipo AsyncBuilder che definisce il comportamento dei blocchi async, quindi è possibile trovare la definizione nel file control.fs nella distribuzione di origine, nella sorgente \ fsharp \ FSharp. Cartella principale

La traduzione di un'espressione di calcolo in chiamate di metodo sull'istanza del builder può essere trovata in F# spec.

+0

+1 per la specifica. In particolare, se si capisce come LINQ funzioni in C# (riscrittura della sintassi in chiamate di metodo), è possibile sfruttare il modo in cui i flussi di lavoro F # funzionano convertendosi in chiamate di metodo sull'oggetto builder. Se sei curioso dei dettagli specifici di async, guarda control.fs nel codice sorgente. – Brian

+0

da dove si ottiene la fonte fs? – akaphenom

+0

@akaphenom: la sorgente viene fornita con la versione F # 2.0 per VS 2008 (http://www.microsoft.com/downloads/details.aspx?FamilyID=444005fb-e627-4feb-b51d-13d6a3b4b8ed). Non sono sicuro che sia incluso anche nell'installazione di VS 2010 fuori dalla scatola ... – kvb