Click or drag to resize

AGI.Foundation.Infrastructure.Threading Namespace

Contains types used to perform and manage calculations among multiple threads of execution.
Classes
  ClassDescription
Public classBackgroundCalculation
Used to perform a computation in the background. This is modeled after BackgroundWorker, with a few important differences.
Public classMessageEventArgs
Arguments for use with the MessageReceived event
Public classMessageQueue
A message queue used for passing messages between threads
Public classPersistentDictionaryTKey, TValue
A dictionary that maps keys to values and is persistent. Persistence means that an instance of this type, once created, cannot be changed. Methods like Add(TKey, TValue) return a new instance instead of modifying the one on which they are called. The new instance shares much of its structure with the original, so modifications are still efficient. This class is useful in multithreaded applications. An instance of this type cannot be created directly. The Empty field contains an empty instance with which to start.
Public classPersistentDictionaryNodeTKey, TValue
Public classRecurringTaskScheduler
A scheduler for recurring tasks that attempts to run all of its tasks in a fair manner. The number of threads to be used to run tasks can be specified.
Public classRecurringTaskStatistics
Contains information about the performance of a RecurringTask being managed by a RecurringTaskScheduler.
Public classThreadedCalculation
Parallelizes calculations across multiple threads. Most calculations can be parallelized using the static methods on this class. Or, in more advanced scenarios, derive from this class to implement a multithreaded calculation. Calculations are multithreaded according to the ThreadingPolicy.
Public classThreadingPolicy
Specifies how a parallelizable operation should utilize multithreading. By default, the threading policy specifies that parallelizable operations should utilize one thread per logical processor on the system, and that the threads should be recruited from the ThreadPool.
Public classTransactedObject
An object that participates in the software transactional memory (STM) system via TransactionContext and Transaction.
Public classTransactedPropertyT
A property that participates in the software transactional memory (STM) system. The property's value must be read and modified in the context of a Transaction, which guarantees snapshot isolation for all properties in a TransactionContext.
Public classTransactedPropertyChangedEventArgsT
Public classTransactionCommittedEventArgs
Contains information about a committed transaction during the Committed event.
Public classTransactionConflictException
An exception that is thrown when the Transaction being committed conflicts with another transaction already committed. The current transaction must be retried.
Public classTransactionParameter
The placeholder for a parameterized Transaction within an evaluator.
Delegates
  DelegateDescription
Public delegateRecurringTask
A task that is executed periodically by RecurringTaskScheduler.
Public delegateThreadedCalculationBodyCallbackTParameter
A delegate representing the body of a multithreaded 'for' loop. The execution of the callback will see a ThreadingPolicy with only one thread unless it is explicitly set inside the callback.
Public delegateThreadedCalculationBodyCallback2TParameter1, TParameter2
A delegate representing the body of a multithreaded 'for' loop. The execution of the callback will see a ThreadingPolicy with only one thread unless it is explicitly set inside the callback.
Public delegateThreadedCalculationBodyCallbackWithProgressTParameter
A delegate representing the body of a multithreaded 'for' loop, where each iteration of the loop intends to provide detailed information about its progress. This is useful when the parallel loop has too few iterations to accurately compute progress as the number of completed iterations divided by the total number of iterations. The execution of the callback will see a ThreadingPolicy with only one thread unless it is explicitly set inside the callback.
Public delegateThreadedCalculationBodyCallbackWithProgress2TParameter1, TParameter2
A delegate representing the body of a multithreaded 'for' loop, where each iteration of the loop intends to provide detailed information about its progress. This is useful when the parallel loop has too few iterations to accurately compute progress as the number of completed iterations divided by the total number of iterations. The execution of the callback will see a ThreadingPolicy with only one thread unless it is explicitly set inside the callback.
Enumerations