FSharpx.Extras


 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
#r @"../../bin/v4.0/FSharpx.Extras.dll"


open FSharpx.Control


let lines = [| for n in 1..100000 do
               let str = sprintf "line: %d" n
               yield str |]



let asyncWriteA =  System.IO.File.AsyncWriteAllLines(@"c:\tmp\a.txt", lines)
let asyncWriteB =  System.IO.File.AsyncWriteAllLines(@"c:\tmp\b.txt", lines)
let asyncWriteC =  System.IO.File.AsyncWriteAllLines(@"c:\tmp\c.txt", lines)
let asyncWriteD =  System.IO.File.AsyncWriteAllLines(@"c:\tmp\d.txt", lines)
let asyncWriteE =  System.IO.File.AsyncWriteAllText( @"c:\tmp\e.txt", "this is some text\n")

printfn "async write all lines beginning"

[|asyncWriteA; asyncWriteB; asyncWriteC; asyncWriteD; asyncWriteE|]
    |> Async.Parallel 
    |> Async.RunSynchronously 
    |> ignore


let asyncAppendA =  System.IO.File.AsyncAppendAllLines(@"c:\tmp\a.txt", lines)
let asyncAppendB =  System.IO.File.AsyncAppendAllLines(@"c:\tmp\b.txt", lines)
let asyncAppendC =  System.IO.File.AsyncAppendAllLines(@"c:\tmp\c.txt", lines)
let asyncAppendD =  System.IO.File.AsyncAppendAllLines(@"c:\tmp\d.txt", lines)
let asyncAppendE =  System.IO.File.AsyncAppendAllText( @"c:\tmp\e.txt", "this is some more text\n")


[|asyncAppendA;asyncAppendB;asyncAppendC;asyncAppendD; asyncAppendE|]
    |> Async.Parallel 
    |> Async.RunSynchronously 
    |> ignore


printfn "async append all lines complete"
namespace Microsoft.FSharp.Control
val lines : string []

Full name: AsyncFileExtensions.lines
val n : int
val str : string
val sprintf : format:Printf.StringFormat<'T> -> 'T

Full name: Microsoft.FSharp.Core.ExtraTopLevelOperators.sprintf
val asyncWriteA : Async<obj>

Full name: AsyncFileExtensions.asyncWriteA
namespace System
namespace System.IO
type File =
  static member AppendAllLines : path:string * contents:IEnumerable<string> -> unit + 1 overload
  static member AppendAllText : path:string * contents:string -> unit + 1 overload
  static member AppendText : path:string -> StreamWriter
  static member Copy : sourceFileName:string * destFileName:string -> unit + 1 overload
  static member Create : path:string -> FileStream + 3 overloads
  static member CreateText : path:string -> StreamWriter
  static member Decrypt : path:string -> unit
  static member Delete : path:string -> unit
  static member Encrypt : path:string -> unit
  static member Exists : path:string -> bool
  ...

Full name: System.IO.File
val asyncWriteB : Async<obj>

Full name: AsyncFileExtensions.asyncWriteB
val asyncWriteC : Async<obj>

Full name: AsyncFileExtensions.asyncWriteC
val asyncWriteD : Async<obj>

Full name: AsyncFileExtensions.asyncWriteD
val asyncWriteE : Async<obj>

Full name: AsyncFileExtensions.asyncWriteE
val printfn : format:Printf.TextWriterFormat<'T> -> 'T

Full name: Microsoft.FSharp.Core.ExtraTopLevelOperators.printfn
Multiple items
type Async
static member AsBeginEnd : computation:('Arg -> Async<'T>) -> ('Arg * AsyncCallback * obj -> IAsyncResult) * (IAsyncResult -> 'T) * (IAsyncResult -> unit)
static member AwaitEvent : event:IEvent<'Del,'T> * ?cancelAction:(unit -> unit) -> Async<'T> (requires delegate and 'Del :> Delegate)
static member AwaitIAsyncResult : iar:IAsyncResult * ?millisecondsTimeout:int -> Async<bool>
static member AwaitTask : task:Task -> Async<unit>
static member AwaitTask : task:Task<'T> -> Async<'T>
static member AwaitWaitHandle : waitHandle:WaitHandle * ?millisecondsTimeout:int -> Async<bool>
static member CancelDefaultToken : unit -> unit
static member Catch : computation:Async<'T> -> Async<Choice<'T,exn>>
static member FromBeginEnd : beginAction:(AsyncCallback * obj -> IAsyncResult) * endAction:(IAsyncResult -> 'T) * ?cancelAction:(unit -> unit) -> Async<'T>
static member FromBeginEnd : arg:'Arg1 * beginAction:('Arg1 * AsyncCallback * obj -> IAsyncResult) * endAction:(IAsyncResult -> 'T) * ?cancelAction:(unit -> unit) -> Async<'T>
static member FromBeginEnd : arg1:'Arg1 * arg2:'Arg2 * beginAction:('Arg1 * 'Arg2 * AsyncCallback * obj -> IAsyncResult) * endAction:(IAsyncResult -> 'T) * ?cancelAction:(unit -> unit) -> Async<'T>
static member FromBeginEnd : arg1:'Arg1 * arg2:'Arg2 * arg3:'Arg3 * beginAction:('Arg1 * 'Arg2 * 'Arg3 * AsyncCallback * obj -> IAsyncResult) * endAction:(IAsyncResult -> 'T) * ?cancelAction:(unit -> unit) -> Async<'T>
static member FromContinuations : callback:(('T -> unit) * (exn -> unit) * (OperationCanceledException -> unit) -> unit) -> Async<'T>
static member Ignore : computation:Async<'T> -> Async<unit>
static member OnCancel : interruption:(unit -> unit) -> Async<IDisposable>
static member Parallel : computations:seq<Async<'T>> -> Async<'T []>
static member RunSynchronously : computation:Async<'T> * ?timeout:int * ?cancellationToken:CancellationToken -> 'T
static member Sleep : millisecondsDueTime:int -> Async<unit>
static member Start : computation:Async<unit> * ?cancellationToken:CancellationToken -> unit
static member StartAsTask : computation:Async<'T> * ?taskCreationOptions:TaskCreationOptions * ?cancellationToken:CancellationToken -> Task<'T>
static member StartChild : computation:Async<'T> * ?millisecondsTimeout:int -> Async<Async<'T>>
static member StartChildAsTask : computation:Async<'T> * ?taskCreationOptions:TaskCreationOptions -> Async<Task<'T>>
static member StartImmediate : computation:Async<unit> * ?cancellationToken:CancellationToken -> unit
static member StartWithContinuations : computation:Async<'T> * continuation:('T -> unit) * exceptionContinuation:(exn -> unit) * cancellationContinuation:(OperationCanceledException -> unit) * ?cancellationToken:CancellationToken -> unit
static member SwitchToContext : syncContext:SynchronizationContext -> Async<unit>
static member SwitchToNewThread : unit -> Async<unit>
static member SwitchToThreadPool : unit -> Async<unit>
static member TryCancelled : computation:Async<'T> * compensation:(OperationCanceledException -> unit) -> Async<'T>
static member CancellationToken : Async<CancellationToken>
static member DefaultCancellationToken : CancellationToken

Full name: Microsoft.FSharp.Control.Async

--------------------
type Async<'T>

Full name: Microsoft.FSharp.Control.Async<_>
static member Async.Parallel : computations:seq<Async<'T>> -> Async<'T []>
static member Async.RunSynchronously : computation:Async<'T> * ?timeout:int * ?cancellationToken:System.Threading.CancellationToken -> 'T
val ignore : value:'T -> unit

Full name: Microsoft.FSharp.Core.Operators.ignore
val asyncAppendA : Async<obj>

Full name: AsyncFileExtensions.asyncAppendA
val asyncAppendB : Async<obj>

Full name: AsyncFileExtensions.asyncAppendB
val asyncAppendC : Async<obj>

Full name: AsyncFileExtensions.asyncAppendC
val asyncAppendD : Async<obj>

Full name: AsyncFileExtensions.asyncAppendD
val asyncAppendE : Async<obj>

Full name: AsyncFileExtensions.asyncAppendE
Fork me on GitHub