C# Класс clojure.lang.Agent

Represents an Agent.

See the Clojure documentation for more information.

The Java implementation plays many more games with thread pools. The CLR does not provide such support. We need to revisit this in CLR 4. Until then: TODO: Implement our own thread pooling?

Наследование: ARef
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
AddError ( Exception e ) : void

Add an error.

Agent ( Object state, IPersistentMap meta ) : System

Construct an agent with given state and metadata.

Agent ( object state ) : System

Construct an agent with given state and null metadata.

clearErrors ( ) : void

Clear the agent's errors.

Lowercase-name and for core.clj compatibility.

deref ( ) : object

Gets the (immutable) value the reference is holding.

dispatch ( IFn fn, ISeq args, System.Boolean solo ) : object

Send a message to the agent.

getErrors ( ) : ISeq

Get the agent's errors.

Lowercase-name (and is a method instead of a property) for core.clj compatibility.

releasePendingSends ( ) : int

Enqueue nested actions.

lowercase for core.clj compatibility

shutdown ( ) : void

Shutdown all threads executing.

We need to work on this.

Приватные методы

Метод Описание
DispatchAction ( System.Action action ) : void

Send an action (encapsulated message).

If there is a transaction running on this thread, defer execution until the transaction ends (enqueue the action on the transaction).

If there is already an action running, enqueue it (nested).

Otherwise, queue it for execution.

Enqueue ( System.Action action ) : void

Enqueue an action in the pending queue.

Spin-locks to update the queue.

SetState ( object newState ) : bool

Set the state.

Описание методов

AddError() публичный Метод

Add an error.
public AddError ( Exception e ) : void
e System.Exception The exception to add.
Результат void

Agent() публичный Метод

Construct an agent with given state and metadata.
public Agent ( Object state, IPersistentMap meta ) : System
state Object The initial state.
meta IPersistentMap The metadata to attach.
Результат System

Agent() публичный Метод

Construct an agent with given state and null metadata.
public Agent ( object state ) : System
state object The initial state.
Результат System

clearErrors() публичный Метод

Clear the agent's errors.
Lowercase-name and for core.clj compatibility.
public clearErrors ( ) : void
Результат void

deref() публичный Метод

Gets the (immutable) value the reference is holding.
public deref ( ) : object
Результат object

dispatch() публичный Метод

Send a message to the agent.
public dispatch ( IFn fn, ISeq args, System.Boolean solo ) : object
fn IFn The function to be called on the current state and the supplied arguments.
args ISeq The extra arguments to the function.
solo System.Boolean true means execute on its own thread (send-off); /// false means use a thread pool thread (send).
Результат object

getErrors() публичный Метод

Get the agent's errors.
Lowercase-name (and is a method instead of a property) for core.clj compatibility.
public getErrors ( ) : ISeq
Результат ISeq

releasePendingSends() публичный статический Метод

Enqueue nested actions.
lowercase for core.clj compatibility
public static releasePendingSends ( ) : int
Результат int

shutdown() публичный статический Метод

Shutdown all threads executing.
We need to work on this.
public static shutdown ( ) : void
Результат void