ThreadStateException Sınıf

Tanım

yöntemi çağrısı için geçersiz ThreadState olduğunda oluşan Thread özel durum.

public ref class ThreadStateException : SystemException
public ref class ThreadStateException : Exception
public class ThreadStateException : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
public class ThreadStateException : Exception
[System.Serializable]
public class ThreadStateException : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class ThreadStateException : SystemException
type ThreadStateException = class
    inherit SystemException
[<System.Runtime.InteropServices.ComVisible(true)>]
type ThreadStateException = class
    inherit Exception
[<System.Serializable>]
type ThreadStateException = class
    inherit SystemException
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type ThreadStateException = class
    inherit SystemException
Public Class ThreadStateException
Inherits SystemException
Public Class ThreadStateException
Inherits Exception
Devralma
ThreadStateException
Devralma
ThreadStateException
Öznitelikler

Örnekler

Aşağıdaki örnekte, sistemin bir oluşturmasına neden olan bir ThreadStateExceptionhata gösterilmektedir.

using namespace System;
using namespace System::Threading;
ref class ThreadWork
{
public:
   static void DoWork()
   {
      Console::WriteLine( "Working thread..." );
   }

};

int main()
{
   ThreadStart^ myThreadDelegate = gcnew ThreadStart( ThreadWork::DoWork );
   Thread^ myThread = gcnew Thread( myThreadDelegate );
   myThread->Start();
   Thread::Sleep( 0 );
   Console::WriteLine( "In main. Attempting to restart myThread." );
   try
   {
      myThread->Start();
   }
   catch ( ThreadStateException^ e ) 
   {
      Console::WriteLine( "Caught: {0}", e->Message );
   }

}
using System;
using System.Threading;

public class ThreadWork
{
   public static void DoWork()
   {
      Console.WriteLine("Working thread...");
   }
}

class ThreadStateTest
{
   public static void Main()
   {
      ThreadStart myThreadDelegate = new ThreadStart(ThreadWork.DoWork);
      Thread myThread = new Thread(myThreadDelegate);
      myThread.Start();
      Thread.Sleep(0);
      Console.WriteLine("In main. Attempting to restart myThread.");
      try
      {
         myThread.Start();
      }
      catch (ThreadStateException e)
      {
         Console.WriteLine("Caught: {0}", e.Message);
      }
   }
}
Imports System.Threading

Public Class ThreadWork
   
   Public Shared Sub DoWork()
      Console.WriteLine("Working thread...")
   End Sub
End Class

Class ThreadStateTest
   
   Public Shared Sub Main()
      Dim myThreadDelegate As New ThreadStart(AddressOf ThreadWork.DoWork)
      Dim myThread As New Thread(myThreadDelegate)
      myThread.Start()
      Thread.Sleep(0)
      Console.WriteLine("In main. Attempting to restart myThread.")
      Try
         myThread.Start()
      Catch e As ThreadStateException
         Console.WriteLine("Caught: {0}", e.Message)
      End Try
   End Sub
End Class

Bu kod şu çıkışı oluşturur:

In main. Attempting to restart myThread.  
    Working thread...  
    Caught: Thread is running or terminated. Cannot restart.  

Açıklamalar

Bir iş parçacığı oluşturulduktan sonra, sonlandırılana ThreadState kadar en az bir durumda olur. ThreadStateException , bir iş parçacığının geçerli durumu nedeniyle istenen işlemi gerçekleştiremeyen yöntemler tarafından oluşturulur. Örneğin, sonlandırılan bir iş parçacığında çağrısı Start yaparak durdurulan bir iş parçacığını yeniden başlatmaya çalışmak bir ThreadStateExceptionoluşturur.

ThreadStateException değeri 0x80131520 olan HRESULT COR_E_THREADSTATE kullanır.

örneğinin ilk özellik değerlerinin ThreadStateExceptionlistesi için oluşturuculara ThreadStateException bakın.

Oluşturucular

ThreadStateException()

Sınıfın ThreadStateException yeni bir örneğini varsayılan özelliklerle başlatır.

ThreadStateException(SerializationInfo, StreamingContext)

ThreadStateException sınıfının yeni bir örneğini serileştirilmiş verilerle başlatır.

ThreadStateException(String)

Belirtilen hata iletisiyle sınıfının yeni bir örneğini ThreadStateException başlatır.

ThreadStateException(String, Exception)

Belirtilen bir hata iletisi ve bu özel durumun nedeni olan iç özel duruma başvuru ile sınıfının yeni bir örneğini ThreadStateException başlatır.

Özellikler

Data

Özel durum hakkında kullanıcı tanımlı ek bilgiler sağlayan bir anahtar/değer çifti koleksiyonu alır.

(Devralındığı yer: Exception)
HelpLink

Bu özel durumla ilişkili yardım dosyasının bağlantısını alır veya ayarlar.

(Devralındığı yer: Exception)
HResult

Belirli bir özel duruma atanan kodlanmış sayısal bir değer olan HRESULT değerini alır veya ayarlar.

(Devralındığı yer: Exception)
InnerException

Geçerli özel duruma Exception neden olan örneği alır.

(Devralındığı yer: Exception)
Message

Geçerli özel durumu açıklayan bir ileti alır.

(Devralındığı yer: Exception)
Source

Hataya neden olan uygulamanın veya nesnenin adını alır veya ayarlar.

(Devralındığı yer: Exception)
StackTrace

Çağrı yığınındaki anlık çerçevelerin dize gösterimini alır.

(Devralındığı yer: Exception)
TargetSite

Geçerli özel durumu oluşturan yöntemini alır.

(Devralındığı yer: Exception)

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetBaseException()

Türetilmiş bir sınıfta geçersiz kılındığında, sonraki bir veya daha fazla özel durumun kök nedeni olan değerini döndürür Exception .

(Devralındığı yer: Exception)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetObjectData(SerializationInfo, StreamingContext)

Türetilmiş bir sınıfta geçersiz kılındığında, özel durum hakkındaki bilgilerle öğesini ayarlar SerializationInfo .

(Devralındığı yer: Exception)
GetType()

Geçerli örneğin çalışma zamanı türünü alır.

(Devralındığı yer: Exception)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli özel durumun dize gösterimini oluşturur ve döndürür.

(Devralındığı yer: Exception)

Ekinlikler

SerializeObjectState
Geçersiz.

Bir özel durum, özel durum hakkında serileştirilmiş veriler içeren bir özel durum nesnesi oluşturmak üzere seri hale getirildiğinde gerçekleşir.

(Devralındığı yer: Exception)

Şunlara uygulanır

Ayrıca bkz.