SpreadsheetGear 2023
BeginUpdate Method (IWorkbookSet)
Example 


SpreadsheetGear Namespace > IWorkbookSet Interface : BeginUpdate Method
Interrupts background calculation if necessary, acquires an exclusive lock on the workbook set, and suspends painting and events until EndUpdate is called.
Syntax
'Declaration
 
Sub BeginUpdate() 
'Usage
 
Dim instance As IWorkbookSet
 
instance.BeginUpdate()
void BeginUpdate()
Remarks

This method is thread safe.

Use BeginUpdate and EndUpdate when making a large number of changes to a workbook set which is attached to one or more Windows Forms components from SpreadsheetGear. Doing so will typically result in significant performance improvements when accessing the SpreadsheetGear API many times to change the workbooks in a workbook set. However, all events which would have been fired before EndUpdate is called will be lost, and all Windows Forms components from SpreadsheetGear which are attached to the workbook set will be completely repainted after EndUpdate is called.

An exception will be thrown if UnwindLock is called after a call to BeginUpdate and before a call to EndUpdate. Changing the workbook set associated with any Windows Forms component from SpreadsheetGear generates a call to UnwindLock, therefore the workbook set of a Windows Forms component cannot be changed when using BeginUpdate.

BeginUpdate essentially detaches a workbook set from any SpreadsheetGear Windows Forms components, temporarily making performance similar to using a workbook set with no attached user interface.

BeginUpdate calls GetLock to acquire a lock on the workbook set.

EndUpdate must be called for each call to BeginUpdate. The recommended best practice is to call BeginUpdate followed by a try block where work is done, and then call EndUpdate in a finally block.

Example
Demonstrate using a workbook set in a thread safe manner when accessing the SpreadsheetGear API many times.
void DoSomeThreadSafeWorkQuickly(IWorkbookSet workbookSet)
        {
            // Interrupt background calculation if necessary, acquire an
            // exclusive lock on the workbook set and suspend events and
            // painting.
            workbookSet.BeginUpdate();
 
            try {
                // Do a lot of work...
            }
            finally {
                // Release the lock on the workbook set, start background
                // calculation if appropriate and repaint controls.
                workbookSet.EndUpdate();
            }
        }
Sub DoSomeThreadSafeWorkQuickly(ByVal workbookSet As IWorkbookSet)
            ' Interrupt background calculation if necessary, acquire an 
            ' exclusive lock on the workbook set and suspend events and
            ' painting.
            workbookSet.BeginUpdate()
 
            Try
                ' Do a lot of work... 
            Finally
                ' Release the lock on the workbook set, start background 
                ' calculation if appropriate and repaint controls.
                workbookSet.EndUpdate()
            End Try
        End Sub 'DoSomeThreadSafeWork
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

IWorkbookSet Interface
IWorkbookSet Members
EndUpdate Method
GetLock Method
ReleaseLock Method