[Home] Namespace Microsoft.FSharp.Control


Modules (as contributed by assembly 'FSharp.Core')

ModuleDescription
Microsoft.FSharp.Control.CommonExtensions A module of extension members that provide asynchronous operations for some basic .NET types related to concurrency and I/O.
Microsoft.FSharp.Control.Event Basic operations on first class event objects.

Type Definitions

TypeDescription
type Async An asynchronous computation, which, when run, will eventually produce a value of the given type, or else raise an exception. The value and/or exception is not returned to the caller immediately, but is rather passed to a success continuation, exception continuation or cancellation continuation. Asynchronous computations are normally specified using the F# 'workflow' syntax for building computations. When run, asynchronous computations can normally be thought of as running run in one of two modes: 'work item mode' or 'waiting mode'. - 'work item mode' indicates that the computation is executing as a work item, e.g. in the .NET Thread Pool via ThreadPool.QueueUserWorkItem, or is running a brief event-response action on the GUI thread. - 'waiting mode' indicates the computations a waiting for asynchronous I/O completions, typically suspended as thunks using ThreadPool.RegisterWaitForSingleObject. Asynchronous computations running as 'work items' should not generally perform blocking operations, e.g. long running synchronous loops. However, some asynchronous computations may, out of necessity, need to execute blocking I/O operations: these should be run on new threads or a user-managed pool of threads specifically dedicated to resolving blocking conditions. For example, System.IO.OpenFile is, by design, a blocking operation. However frequently it is important to code as if this is asynchronous. This can be done by executing Async.SwitchToNewThread as part of the workflow. When run, asynchronous computations belong to an AsyncGroup. This can usually be specified when the async computation is started. The only action on an AsyncGroup is to raise a cancellation condition for the AsyncGroup. Async values check the cancellation condition for their AsyncGroup regularly, though synchronous computations within an asynchronous computation will not automatically check this condition. This gives a user-level cooperative cancellation protocol.
type Async This static class holds members for creating and manipulating asynchronous computations
type AsyncBuilder The type of the 'async' operator, used to build workflows for asynchronous computations.
type AsyncGroup
type AsyncReplyChannel A handle to a capability to reply to a PostAndReply message
type DelegateEvent Event implementations for an arbitrary type of delegate
type Event Event implementations for a delegate types following the standard .NET Framework convention of a first 'sender' argument
type Event Event implementations for the IEvent<_> type
type Handler A delegate type associated with the F# event type IEvent<_>
type IDelegateEvent F# gives special status to non-virtual instance member properties compatible with type IDelegateEvent, generating approriate .NET metadata to make the member appear to other .NET languages as a .NET event.
type IEvent The family of first class event values for delegate types that satisfy the F# delegate constraint.
type IEvent First-class listening points (i.e. objects that permit you to register a 'callback' activated when the event is triggered). See the module Event for functions to create events. Note: an abbreviation for IEvent<Handler<'T>,'T>
type lazy The type of delayed computations. Use the values in the Lazy module to manipulate values of this type, and the notation 'lazy expr' to create values of this type. Note: an abbreviation for Lazy<'T>
type Lazy The type of delayed computations. Use the values in the Lazy module to manipulate values of this type, and the notation 'lazy expr' to create values of this type.
type MailboxProcessor A MailboxProcessor is a message-processing agent defined using an asynchronous workflow. The agent encapsulates a message queue that supports multiple-writers and the single reader agent. Writers send messages to the agent by using the Post, PostAndReply or AsyncPostAndReply methods. The reader agent is specified when creating the MailboxProcessor. The agent is usually an asychronous workflow that waits for messages by using the Receive or TryReceive methods. A MailboxProcessor may also scan through all available messages by using the Scan or TryScan method. The encapsulated message queue only supports a single active reader, thus at most one concurrent call to Receive, TryReceive, Scan and/or TryScan may be active at any one time.
type OperationCanceledException

Exceptions

ExceptionDescription
exception Undefined An exeption type raised when the evaluation of a lazy value recursively depend upon itself

See Also

Namespaces


Documentation for assembly FSharp.Core, version 1.9.6.16, generated using F# Programming Language version 1.9.6.16