Thread.Suspend Thread.Suspend Thread.Suspend Thread.Suspend Method

定義

警告

この API は現在使われていません。

スレッドを中断します。スレッドが既に中断されている場合は無効です。Either suspends the thread, or if the thread is already suspended, has no effect.

public:
 void Suspend();
[System.Obsolete("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)]
[System.Obsolete("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.  https://go.microsoft.com/fwlink/?linkid=14202", false)]
public void Suspend ();
member this.Suspend : unit -> unit
Public Sub Suspend ()

例外

.NET Core のみ: このメンバーはサポートされていません。.NET Core only: This member is not supported.

スレッドが開始していないか、または停止しています。The thread has not been started or is dead.

呼び出し元に適切な SecurityPermission がありません。The caller does not have the appropriate SecurityPermission.

注釈

スレッドが既に中断されている場合、このメソッドによる影響はありません。If the thread is already suspended, this method has no effect.

注意事項

スレッドのアクティビティのSuspend同期Resumeには、メソッドとメソッドを使用しないでください。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. セキュリティアクセス許可の評価中にロックを保持している間にスレッドを中断するAppDomainと、内の他のスレッドがブロックされる可能性があります。If you suspend a thread while it holds locks during a security permission evaluation, other threads in the AppDomain might be blocked. クラスコンストラクターの実行中にスレッドを中断すると、そのクラスを使用しAppDomainようとしている内の他のスレッドがブロックされます。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.

スレッドでSuspendメソッドを呼び出すと、スレッドの中断が要求されたことがシステムに示され、スレッドを実際に中断する前にセーフポイントに到達するまでスレッドを実行できます。When you call the Suspend method on a thread, the system notes that a thread suspension has been requested and allows the thread to execute until it reaches a safe point before actually suspending the thread. スレッドのセーフ ポイントは、ガベージ コレクションを実行できる実行ポイントです。A safe point for a thread is a point in its execution at which garbage collection can be performed. セーフ ポイントに到達すると、ランタイムにより、中断されたスレッドがマネージド コードで続行されないことが保証されます。Once a safe point is reached, the runtime guarantees that the suspended thread will not make any further progress in managed code. マネージド コードの外部で実行中のスレッドは、通常、ガベージ コレクションでは安全であり、その実行はマネージド コードの実行再開が試行されるまで続行します。A thread executing outside managed code is always safe for garbage collection, and its execution continues until it attempts to resume execution of managed code.

セキュリティ

SecurityPermission
スレッドに対する高度な操作の場合。for advanced operations on threads. ControlThread (関連する列挙体)Associated enumeration: ControlThread.

適用対象

こちらもご覧ください