开发者

F# AsyncWaitOne and AsyncReadToEnd

I am working ti old F# code from Expert F#. However, the example doesn't build anymore. The following two calls don't seem to exist:

semaphore.AsyncWaitOne(?millisecondsTimeout=timeout) 

and

开发者_如何学Go
reader.ReadToEndAsync()

Does anyone know what these have been replaced with or if I am just missing a reference?


It's now called Async.AwaitWaitHandle.

AsyncReadToEnd is in the F# PowerPack.


By now, FSharp PowerPack project has been broken up into smaller modules for any further development. Specifically, the AsyncStreamReader class and the extension methods for the reading from a StreamReader, WebClient, etc. the new project is FSharpx.Async.


1) AsyncWaitOne is now called Async.AwaitWaitHandle.

2) AsyncReadToEnd() extension method does not exists anymore in the FSharp.PowerPack. It has been replaced with the AsyncStreamReader dedicated type that contains proper asynchronous implementation of stream reading (like ReadToEnd, ReadLine, etc.)

It can be used like that:

async { 
  use asyncReader = new AsyncStreamReader(stream)
  return! asyncReader.ReadToEnd() }

Note: Once you have installed FSharp.PowerPack, the AsyncStreamReader type will be 'injected' in the Microsoft.FSharp.Control namespace

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜