Thread::Suspend Method ()

Note: This API is now obsolete.

Either suspends the thread, or if the thread is already suspended, has no effect.

Namespace:   System.Threading
Assembly:  mscorlib (in mscorlib.dll)

[ObsoleteAttribute("Thread.Suspend has been deprecated.  Please use other classes in System.Threading, such as Monitor, Mutex, Event, and Semaphore, to synchronize Threads or protect resources.", 
[SecurityPermissionAttribute(SecurityAction::Demand, ControlThread = true)]
[SecurityPermissionAttribute(SecurityAction::Demand, ControlThread = true)]
void Suspend()

Exception Condition

The thread has not been started or is dead.


The caller does not have the appropriate SecurityPermission.

If the thread is already suspended, this method has no effect.


Do not use the Suspend and Resume methods to synchronize the activities of threads. You have no way of knowing what code a thread is executing when you suspend it. If you suspend a thread while it holds locks during a security permission evaluation, other threads in the AppDomain might be blocked. If you suspend a thread while it is executing a class constructor, other threads in the AppDomain that attempt to use that class are blocked. Deadlocks can occur very easily.


for advanced operations on threads. Associated enumeration: SecurityPermissionFlag::ControlThread.

.NET Framework
Available since 1.1
Return to top
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2015 Microsoft