Thread.IsThreadPoolThread-Eigenschaft
Ruft einen Wert ab, der angibt, ob ein Thread zu dem verwalteten Threadpool gehört.
Namespace: System.Threading
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public ReadOnly Property IsThreadPoolThread As Boolean
'Usage
Dim instance As Thread
Dim value As Boolean
value = instance.IsThreadPoolThread
public bool IsThreadPoolThread { get; }
public:
property bool IsThreadPoolThread {
bool get ();
}
/** @property */
public boolean get_IsThreadPoolThread ()
public function get IsThreadPoolThread () : boolean
Eigenschaftenwert
true, wenn der Thread zu dem verwalteten Threadpool gehört, andernfalls false.
Beispiel
Das folgende Codebeispiel veranschaulicht, wie ermittelt werden kann, ob ein Thread aus dem Threadpool stammt.
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
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0