Thread.IsThreadPoolThread プロパティ
アセンブリ: mscorlib (mscorlib.dll 内)


スレッドがスレッド プールに属するものであるかどうかを判断する方法の例を次に示します。
Option Explicit Option Strict Imports System Imports System.Threading Public Class IsThreadPool <MTAThread> _ Shared Sub Main() Dim autoEvent As New AutoResetEvent(False) Dim regularThread As New Thread(AddressOf ThreadMethod) regularThread.Start() ThreadPool.QueueUserWorkItem(AddressOf WorkMethod, autoEvent) ' Wait for foreground thread to end. regularThread.Join() ' Wait for background thread to end. autoEvent.WaitOne() End Sub Shared Sub ThreadMethod() Console.WriteLine("ThreadOne, executing ThreadMethod, " & _ "is from the thread pool? {0}", _ Thread.CurrentThread.IsThreadPoolThread) End Sub Shared Sub WorkMethod(stateInfo As Object) Console.WriteLine("ThreadTwo, executing WorkMethod, " & _ "is from the thread pool? {0}", _ Thread.CurrentThread.IsThreadPoolThread) ' Signal that this thread is finished. DirectCast(stateInfo, AutoResetEvent).Set() End Sub End Class
using System; using System.Threading; class IsThreadPool { static void Main() { AutoResetEvent autoEvent = new AutoResetEvent(false); Thread regularThread = new Thread(new ThreadStart(ThreadMethod)); regularThread.Start(); ThreadPool.QueueUserWorkItem(new WaitCallback(WorkMethod), autoEvent); // Wait for foreground thread to end. regularThread.Join(); // Wait for background thread to end. autoEvent.WaitOne(); } static void ThreadMethod() { Console.WriteLine("ThreadOne, executing ThreadMethod, " + "is {0}from the thread pool.", Thread.CurrentThread.IsThreadPoolThread ? "" : "not "); } static void WorkMethod(object stateInfo) { Console.WriteLine("ThreadTwo, executing WorkMethod, " + "is {0}from the thread pool.", Thread.CurrentThread.IsThreadPoolThread ? "" : "not "); // Signal that this thread is finished. ((AutoResetEvent)stateInfo).Set(); } }
using namespace System; using namespace System::Threading; ref class IsThreadPool { public: static void ThreadMethod() { Console::WriteLine( "ThreadOne, executing ThreadMethod, " "is {0}from the thread pool.", Thread::CurrentThread->IsThreadPoolThread ? (String^)"" : "not " ); } static void WorkMethod( Object^ stateInfo ) { Console::WriteLine( "ThreadTwo, executing WorkMethod, " "is {0}from the thread pool.", Thread::CurrentThread->IsThreadPoolThread ? (String^)"" : "not " ); // Signal that this thread is finished. dynamic_cast<AutoResetEvent^>(stateInfo)->Set(); } }; int main() { AutoResetEvent^ autoEvent = gcnew AutoResetEvent( false ); Thread^ regularThread = gcnew Thread( gcnew ThreadStart( &IsThreadPool::ThreadMethod ) ); regularThread->Start(); ThreadPool::QueueUserWorkItem( gcnew WaitCallback( &IsThreadPool::WorkMethod ), autoEvent ); // Wait for foreground thread to end. regularThread->Join(); // Wait for background thread to end. autoEvent->WaitOne(); }
import System.*; import System.Threading.*; import System.Threading.Thread; class IsThreadPool { public static void main(String[] args) { AutoResetEvent autoEvent = new AutoResetEvent(false); Thread regularThread = new Thread(new ThreadStart(ThreadMethod)); regularThread.Start(); ThreadPool.QueueUserWorkItem(new WaitCallback(WorkMethod), autoEvent); // Wait for foreground thread to end. regularThread.Join(); // Wait for background thread to end. autoEvent.WaitOne(); } //main static void ThreadMethod() { Console.WriteLine("ThreadOne, executing ThreadMethod, " + "is {0}from the thread pool.", (Thread.get_CurrentThread().get_IsThreadPoolThread()) ? "" : "not "); } //ThreadMethod static void WorkMethod(Object stateInfo) { Console.WriteLine("ThreadTwo, executing WorkMethod, " + "is {0}from the thread pool.", (Thread.get_CurrentThread().get_IsThreadPoolThread()) ? "" : "not "); // Signal that this thread is finished. ((AutoResetEvent)(stateInfo)).Set(); } //WorkMethod } //IsThreadPool

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からThread.IsThreadPoolThread プロパティを検索する場合は、下記のリンクをクリックしてください。

- Thread.IsThreadPoolThread プロパティのページへのリンク