Thread::Suspend Method ()
Either suspends the thread, or if the thread is already suspended, has no effect.
Assembly: mscorlib (in mscorlib.dll)
public: [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. http://go.microsoft.com/fwlink/?linkid=14202", false)] [SecurityPermissionAttribute(SecurityAction::Demand, ControlThread = true)] [SecurityPermissionAttribute(SecurityAction::Demand, ControlThread = true)] void Suspend()
| Exception | Condition |
|---|---|
| ThreadStateException | The thread has not been started or is dead. |
| SecurityException | The caller does not have the appropriate SecurityPermission. |
If the thread is already suspended, this method has no effect.
Caution |
|---|
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.
Available since 1.1
