Thread.Suspend Method (System.Threading)

Switch View :
ScriptFree
.NET Framework Class Library
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)
Syntax

Visual Basic
<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)> _
Public Sub Suspend
C#
[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)]
public void Suspend()
Visual C++
[ObsoleteAttribute(L"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)]
public:
void Suspend()
F#
[<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)>]
member Suspend : unit -> unit 

Exceptions

Exception Condition
ThreadStateException

The thread has not been started or is dead.

SecurityException

The caller does not have the appropriate SecurityPermission.

Remarks

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

Caution note 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.

Version Information

.NET Framework

Supported in: 1.1, 1.0
Obsolete (compiler warning) in 4
Obsolete (compiler warning) in 3.5
Obsolete (compiler warning) in 3.5 SP1
Obsolete (compiler warning) in 3.0
Obsolete (compiler warning) in 3.0 SP1
Obsolete (compiler warning) in 3.0 SP2
Obsolete (compiler warning) in 2.0
Obsolete (compiler warning) in 2.0 SP1
Obsolete (compiler warning) in 2.0 SP2

.NET Framework Client Profile

Obsolete (compiler warning) in 4
Obsolete (compiler warning) in 3.5 SP1
.NET Framework Security

Platforms

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

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
See Also

Reference

Other Resources

Community Content

Mark Moeykens
Alternative
Since the Suspend method is now obsolete, use Thread.Sleep method as an alternative.

Hope this helps,
Mark Moeykens