| 
        public interface ISynchronizeInvoke
       | 
The ISynchronizeInvoke class provides two ways to invoke a process:
| InvokeRequired | Read-only Gets a value indicating whether the caller must call ISynchronizeInvoke.Invoke when calling an object that implements this interface. | 
| BeginInvoke | Executes the delegate on the main thread that this object executes on. | 
| EndInvoke | Waits until the process started by calling ISynchronizeInvoke.BeginInvoke completes, and then returns the value generated by the process. | 
| Invoke | Executes the delegate on the main thread that this object executes on. | 
| 
            bool InvokeRequired {get;}
           | 
| 
            IAsyncResult BeginInvoke( | 
method
args
If you need to call the delegate synchronously, use the ISynchronizeInvoke.Invoke method instead.
| 
            object EndInvoke( | 
result
method
args
Use this method when calling a method from a different thread to marshal the call to the proper thread.