Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

SyncLock Statement

Allows statements to be synchronized on a single expression.

SyncLock expression
...[ block ]
End SyncLock

Parts

expression
Required. A unique collection of operators and values that yield a single result.
block
Optional. The statements that will execute in sequence.
End SyncLock
Terminates a SyncLock procedure.

Remarks

The SyncLock statement ensures that multiple threads do not execute the same statements at the same time. When the thread reaches the SyncLock block, it evaluates the expression and maintains this exclusivity until it has a lock on the object that is returned by the expression. This prevents an expression from changing values during the running of several threads, which can give unexpected results from your code.

Note   The type of the expression in a SyncLock statement must be a reference type, such as a class, a module, an interface, array or delegate.

Example

Class Cache
   Private Shared Sub Add(ByVal x As Object)
      SyncLock GetType(Cache)
      End SyncLock
   End Sub

   Private Shared Sub Remove(ByVal x As Object)
      SyncLock GetType(Cache)
      End SyncLock
   End Sub
End Class

See Also

Thread Synchronization | Multithreading in Visual Basic .NET

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft