Click or drag to resize

DelayedSynchronizedOperation Class

Represents a short-running synchronized operation that cannot run while it is already in progress. Async operations will execute on the thread-pool after the specified Delay in milliseconds.
Inheritance Hierarchy
SystemObject
  GSF.ThreadingSynchronizedOperationBase
    GSF.ThreadingDelayedSynchronizedOperation

Namespace: GSF.Threading
Assembly: GSF.Core (in GSF.Core.dll) Version: 2.4.218-beta+101eee949414e414795e55a6e73d88938f0177b8
Syntax
public class DelayedSynchronizedOperation : SynchronizedOperationBase
View Source

The DelayedSynchronizedOperation type exposes the following members.

Constructors
 NameDescription
Public methodDelayedSynchronizedOperation(Action) Creates a new instance of the DelayedSynchronizedOperation class.
Public methodDelayedSynchronizedOperation(Action, ActionException) Creates a new instance of the DelayedSynchronizedOperation class.
Top
Properties
 NameDescription
Public propertyDelay Gets or sets the amount of time to wait before execution, in milliseconds, for any asynchronous calls. Zero value will execute immediately.
Public propertyIsPending Gets a value to indiate whether the synchronized operation has an additional operation that is pending execution after the currently running action has completed.
(Inherited from SynchronizedOperationBase)
Public propertyIsRunning Gets a value to indicate whether the synchronized operation is currently executing its action.
(Inherited from SynchronizedOperationBase)
Top
Methods
 NameDescription
Public methodEqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
Protected methodExecuteAction Executes the action once on the current thread.
(Inherited from SynchronizedOperationBase)
Protected methodExecuteActionAsync Executes the action on a separate thread after the specified Delay.
(Overrides SynchronizedOperationBaseExecuteActionAsync)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
Public methodGetHashCodeServes as the default hash function.
(Inherited from Object)
Public methodGetTypeGets the Type of the current instance.
(Inherited from Object)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
Public methodRun Executes the action on this thread or marks the operation as pending if the operation is already running.
(Inherited from SynchronizedOperationBase)
Public methodRunOnce Executes the action on this thread or marks the operation as pending if the operation is already running.
(Inherited from SynchronizedOperationBase)
Public methodRunOnceAsync Executes the action on another thread or marks the operation as pending if the operation is already running.
(Inherited from SynchronizedOperationBase)
Public methodToStringReturns a string that represents the current object.
(Inherited from Object)
Public methodTryRun Attempts to execute the action on this thread. Does nothing if the operation is already running.
(Inherited from SynchronizedOperationBase)
Public methodTryRunOnce Attempts to execute the action on this thread. Does nothing if the operation is already running.
(Inherited from SynchronizedOperationBase)
Public methodTryRunOnceAsync Attempts to execute the action on another thread. Does nothing if the operation is already running.
(Inherited from SynchronizedOperationBase)
Top
Fields
 NameDescription
Public fieldStatic memberDefaultDelay Defines the default value for the Delay property.
Top
Extension Methods
 NameDescription
Public Extension MethodGetEnumValueOrDefault Gets the enumeration constant for value, if defined in the enumeration, or a default value.
(Defined by EnumExtensions)
Public Extension MethodGetEnumValueOrDefaultT Gets the enumeration constant for this value, if defined in the enumeration, or a default value.
(Defined by EnumExtensions)
Top
Remarks
The action performed by the DelayedSynchronizedOperation is executed on the ThreadPool when running the operation asynchronously. When the operation is set to pending, the action is executed in an asynchronous loop on the thread pool until all pending operations have been completed. Since the action is executed on the thread pool, it is best if it can be executed quickly, without blocking the thread or putting it to sleep. If completion of the operation is critical, such as when saving data to a file, this type of operation should not be used since thread pool threads are background threads and will not prevent the program from ending before the operation is complete.
See Also