Thread.Suspend and Thread.Resume can give unpredictable results, and both methods have been deprecated. Indeed, if Thread.Suspend is not used very carefully, a thread can be suspended while holding a lock, thus leading to a deadlock. Other safer synchronization mechanisms should be used, such as Monitor, Mutex, and Semaphore.

Noncompliant Code Example

Public Sub Foo()
    Thread.CurrentThread.Suspend() ' Noncompliant
    Thread.[Resume]() ' Noncompliant
End Sub

See