Skip to content

Instantly share code, notes, and snippets.

@davidgrenier
Created July 1, 2012 22:27
Show Gist options
  • Save davidgrenier/3029859 to your computer and use it in GitHub Desktop.
Save davidgrenier/3029859 to your computer and use it in GitHub Desktop.
Old async
let asyncDownload1 (url : string) =
let req = HttpWebRequest.Create url
req.BeginGetResponse(fun ar ->
use resp = req.EndGetResponse(ar)
use stream = resp.GetResponseStream()
let result = ref [||]
let buffer = Array.zeroCreate 8192 : byte []
let rec readAll () =
stream.BeginRead(buffer, 0, buffer.Length, fun ar2 ->
match stream.EndRead ar2 with
| 0 -> ()
| n ->
result := Array.concat [!result; buffer.[0..(n-1)]]
readAll()
, null)
readAll()
, null)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment