This interface is implemented by components ( specifically System.Windows.Forms.Control ) that support the synchronous (through Invoke() ) or asynchronous (through BeginInvoke() and EndInvoke( ) ) execution of delegates, allowing the components to marshal the delegates into a particular context. The implementation in System.Windows.Forms.Control is used to ensure that the execution of the delegate is marshaled onto the thread on which the System.Windows.Forms.Control was created. public interface ISynchronizeInvoke { // Public Instance Properties public bool InvokeRequired {get; } // Public Instance Methods public IAsyncResult BeginInvoke (Delegate method , object[] args ); public object EndInvoke (IAsyncResult result ); public object Invoke (Delegate method , object[] args ); } Implemented BySystem.Windows.Forms.Control Returned BySystem.Diagnostics.EventLog.SynchronizingObject , System.Diagnostics.Process.SynchronizingObject , System.IO.FileSystemWatcher.SynchronizingObject , System.Timers.Timer.SynchronizingObject Passed ToSystem.Diagnostics.EventLog.SynchronizingObject , System.Diagnostics.Process.SynchronizingObject , System.IO.FileSystemWatcher.SynchronizingObject , System.Timers.Timer.SynchronizingObject |