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
开发者_如何学Goreader.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
精彩评论