C# Class GSF.Threading.WorkerThreadSynchronization

Creates a synchronization helper that will assist object synchronizing in a tight inner loop.
For streaming protocols, it is cost prohibited to tightly coordinate the inner loop. This class will help coordinate these efforts by signaling when a good time to perform synchronized work would be. For Example, when writing to a socket, calling BeginSafeToCallbackRegion would be good to do when the socket makes any kind of blocking call, such as flusing to an underlying socket. Upon returning from this command, calling EndSafeToCallbackRegion will return this class to a state where callback will not be executed. It is critical that BeginSafeToCallbackRegion, EndSafeToCallbackRegion, and PulseSafeToCallback only be called by the worker thread, as these methods are not thread safe and control the state of the WorkerThreadSynchronization. In easy terms. When you (the worker) get a convenient time, I need to do something that might modify your current working state. Let me know when I can do that.
Inheritance: GSF.Diagnostics.DisposableLoggingClassBase
ファイルを表示 Open project: GridProtectionAlliance/openHistorian Class Usage Examples

Public Methods

Method Description
RequestCallback ( System.Action callback ) : CallbackRequest

Requests that the following action be completed as soon as reasonably possible. This will either be done immediately, or be queued for the next approriate time.

WorkerThreadSynchronization ( ) : System

Creates a WorkerThreadSynchronization.

Private Methods

Method Description
BeginSafeToCallbackRegion ( ) : void
EndSafeToCallbackRegion ( ) : void
ExecuteAllCallbacks ( ) : void
PulseSafeToCallback ( ) : void

Method Details

RequestCallback() public method

Requests that the following action be completed as soon as reasonably possible. This will either be done immediately, or be queued for the next approriate time.
public RequestCallback ( System.Action callback ) : CallbackRequest
callback System.Action action to perform
return CallbackRequest

WorkerThreadSynchronization() public method

Creates a WorkerThreadSynchronization.
public WorkerThreadSynchronization ( ) : System
return System