Thread Oluşturucular
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Thread sınıfının yeni bir örneğini başlatır.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| Thread(ParameterizedThreadStart) |
İş parçacığı başlatıldığında bir nesnenin iş parçacığına Thread geçirilmesine izin veren bir temsilci belirterek sınıfının yeni bir örneğini başlatır. |
| Thread(ThreadStart) |
Thread sınıfının yeni bir örneğini başlatır. |
| Thread(ParameterizedThreadStart, Int32) |
Sınıfın Thread yeni bir örneğini başlatır, iş parçacığı başlatıldığında nesnenin iş parçacığına geçirilmesine izin veren bir temsilci belirtir ve iş parçacığı için en büyük yığın boyutunu belirtir. |
| Thread(ThreadStart, Int32) |
İş parçacığı için en büyük yığın boyutunu belirterek sınıfının yeni bir örneğini Thread başlatır. |
Thread(ParameterizedThreadStart)
- Kaynak:
- Thread.cs
- Kaynak:
- Thread.cs
- Kaynak:
- Thread.cs
- Kaynak:
- Thread.cs
- Kaynak:
- Thread.cs
İş parçacığı başlatıldığında bir nesnenin iş parçacığına Thread geçirilmesine izin veren bir temsilci belirterek sınıfının yeni bir örneğini başlatır.
public:
Thread(System::Threading::ParameterizedThreadStart ^ start);
public Thread(System.Threading.ParameterizedThreadStart start);
new System.Threading.Thread : System.Threading.ParameterizedThreadStart -> System.Threading.Thread
Public Sub New (start As ParameterizedThreadStart)
Parametreler
- start
- ParameterizedThreadStart
Bu iş parçacığı yürütülmeye başladığında çağrılacak yöntemleri temsil eden bir temsilci.
Özel durumlar
start, null'e eşittir.
Örnekler
Aşağıdaki örnekte, statik bir yöntem ve örnek yöntemiyle temsilci ParameterizedThreadStart oluşturma ve kullanma söz dizimi gösterilmektedir.
using System;
using System.Threading;
public class Work
{
public static void Main()
{
// Start a thread that calls a parameterized static method.
Thread newThread = new Thread(Work.DoWork);
newThread.Start(42);
// Start a thread that calls a parameterized instance method.
Work w = new Work();
newThread = new Thread(w.DoMoreWork);
newThread.Start("The answer.");
}
public static void DoWork(object data)
{
Console.WriteLine("Static thread procedure. Data='{0}'",
data);
}
public void DoMoreWork(object data)
{
Console.WriteLine("Instance thread procedure. Data='{0}'",
data);
}
}
// This example displays output like the following:
// Static thread procedure. Data='42'
// Instance thread procedure. Data='The answer.'
open System.Threading
type Work() =
static member DoWork(data: obj) =
printfn $"Static thread procedure. Data='{data}'"
member _.DoMoreWork(data: obj) =
printfn $"Instance thread procedure. Data='{data}'"
// Start a thread that calls a parameterized static method.
let newThread = Thread(ParameterizedThreadStart Work.DoWork)
newThread.Start 42
// Start a thread that calls a parameterized instance method.
let w = Work()
let newThread2 = Thread(ParameterizedThreadStart w.DoMoreWork)
newThread.Start "The answer."
// This example displays output like the following:
// Static thread procedure. Data='42'
// Instance thread procedure. Data='The answer.'
Imports System.Threading
Public Class Work
Shared Sub Main()
' Start a thread that calls a parameterized static method.
Dim newThread As New Thread(AddressOf Work.DoWork)
newThread.Start(42)
' Start a thread that calls a parameterized instance method.
Dim w As New Work()
newThread = New Thread(AddressOf w.DoMoreWork)
newThread.Start("The answer.")
End Sub
Public Shared Sub DoWork(ByVal data As Object)
Console.WriteLine("Static thread procedure. Data='{0}'",
data)
End Sub
Public Sub DoMoreWork(ByVal data As Object)
Console.WriteLine("Instance thread procedure. Data='{0}'",
data)
End Sub
End Class
' This example displays output like the following:
' Static thread procedure. Data='42'
' Instance thread procedure. Data='The answer.'
Açıklamalar
Bir iş parçacığı oluşturulduğunda yürütülmeye başlamaz. İş parçacığını yürütme için zamanlamak için yöntemini çağırın Start . bir veri nesnesini iş parçacığına geçirmek için yöntem aşırı yüklemesini Start(Object) kullanın.
Note
Visual Basic kullanıcılar iş parçacığı oluştururken ThreadStart oluşturucuyu atlayabilir. yönteminizi geçirirken işlecini AddressOf kullanın; örneğin, Dim t As New Thread(AddressOf ThreadProc). Visual Basic ThreadStart oluşturucuyu otomatik olarak çağırır.
Ayrıca bkz.
Şunlara uygulanır
Thread(ThreadStart)
- Kaynak:
- Thread.cs
- Kaynak:
- Thread.cs
- Kaynak:
- Thread.cs
- Kaynak:
- Thread.cs
- Kaynak:
- Thread.cs
Thread sınıfının yeni bir örneğini başlatır.
public:
Thread(System::Threading::ThreadStart ^ start);
public Thread(System.Threading.ThreadStart start);
new System.Threading.Thread : System.Threading.ThreadStart -> System.Threading.Thread
Public Sub New (start As ThreadStart)
Parametreler
- start
- ThreadStart
ThreadStart Bu iş parçacığı yürütülmeye başladığında çağrılacak yöntemleri temsil eden bir temsilci.
Özel durumlar
start parametresi null'dir.
Örnekler
Aşağıdaki kod örneği, statik bir yöntemi yürüten bir iş parçacığının nasıl oluşturulacağını gösterir.
using System;
using System.Threading;
class Test
{
static void Main()
{
Thread newThread =
new Thread(new ThreadStart(Work.DoWork));
newThread.Start();
}
}
class Work
{
Work() {}
public static void DoWork() {}
}
open System.Threading
module Work =
let doWork () = ()
let newThread = Thread(ThreadStart Work.doWork)
newThread.Start()
Imports System.Threading
Public Class Test
<MTAThread> _
Shared Sub Main()
Dim newThread As New Thread(AddressOf Work.DoWork)
newThread.Start()
End Sub
End Class
Public Class Work
Private Sub New()
End Sub
Shared Sub DoWork()
End Sub
End Class
Aşağıdaki kod örneği, bir örnek yöntemini yürüten bir iş parçacığının nasıl oluşturulacağını gösterir.
using System;
using System.Threading;
class Test
{
static void Main()
{
Work threadWork = new Work();
Thread newThread =
new Thread(new ThreadStart(threadWork.DoWork));
newThread.Start();
}
}
class Work
{
public Work() {}
public void DoWork() {}
}
open System.Threading
type Work() =
member _.DoWork() = ()
let threadWork = Work()
let newThread = Thread(ThreadStart threadWork.DoWork)
newThread.Start()
Imports System.Threading
Public Class Test
<MTAThread> _
Shared Sub Main()
Dim threadWork As New Work()
Dim newThread As New Thread(AddressOf threadWork.DoWork)
newThread.Start()
End Sub
End Class
Public Class Work
Sub New()
End Sub
Sub DoWork()
End Sub
End Class
Açıklamalar
Bir iş parçacığı oluşturulduğunda yürütülmeye başlamaz. İş parçacığını yürütme için zamanlamak için yöntemini çağırın Start .
Note
Visual Basic kullanıcılar iş parçacığı oluştururken ThreadStart oluşturucuyu atlayabilir. yönteminizi geçirirken işlecini AddressOf kullanın; örneğin, Dim t As New Thread(AddressOf ThreadProc). Visual Basic ThreadStart oluşturucuyu otomatik olarak çağırır.
Ayrıca bkz.
Şunlara uygulanır
Thread(ParameterizedThreadStart, Int32)
- Kaynak:
- Thread.cs
- Kaynak:
- Thread.cs
- Kaynak:
- Thread.cs
- Kaynak:
- Thread.cs
- Kaynak:
- Thread.cs
Sınıfın Thread yeni bir örneğini başlatır, iş parçacığı başlatıldığında nesnenin iş parçacığına geçirilmesine izin veren bir temsilci belirtir ve iş parçacığı için en büyük yığın boyutunu belirtir.
public:
Thread(System::Threading::ParameterizedThreadStart ^ start, int maxStackSize);
public Thread(System.Threading.ParameterizedThreadStart start, int maxStackSize);
new System.Threading.Thread : System.Threading.ParameterizedThreadStart * int -> System.Threading.Thread
Public Sub New (start As ParameterizedThreadStart, maxStackSize As Integer)
Parametreler
- start
- ParameterizedThreadStart
ParameterizedThreadStart Bu iş parçacığı yürütülmeye başladığında çağrılacak yöntemleri temsil eden bir temsilci.
- maxStackSize
- Int32
İş parçacığı tarafından kullanılacak bayt cinsinden maksimum yığın boyutu veya yürütülebilir dosyanın üst bilgisinde belirtilen varsayılan en büyük yığın boyutunu kullanmak için 0.
Önemli Kısmen güvenilen kod için, maxStackSize varsayılan yığın boyutundan büyükse yoksayılır. İstisna atılmaz.
Özel durumlar
start, null'e eşittir.
maxStackSize, sıfırdan küçüktür.
Açıklamalar
Bu oluşturucu aşırı yükleme kullanmaktan kaçının. Oluşturucu aşırı yüklemesi tarafından Thread(ParameterizedThreadStart) kullanılan varsayılan yığın boyutu, iş parçacıkları için önerilen yığın boyutudur. bir iş parçacığında bellek sorunları varsa, bunun en olası nedeni sonsuz özyineleme gibi programlama hatasıdır.
Important
.NET Framework 4'ten başlayarak, yalnızca tam olarak güvenilen kod maxStackSize varsayılan yığın boyutundan (1 megabayt) daha büyük bir değere ayarlayabilir. Kod kısmi güvenle çalışırken için maxStackSize daha büyük bir değer belirtilirse yoksayılır maxStackSize ve varsayılan yığın boyutu kullanılır. İstisna atılmaz. Herhangi bir güven düzeyindeki kod, varsayılan yığın boyutundan küçük bir değere ayarlanabilir maxStackSize .
Note
Kısmen güvenilen kod tarafından kullanılacak tam güvenilir bir kitaplık geliştiriyorsanız ve büyük bir yığın gerektiren bir iş parçacığı başlatmanız gerekiyorsa, iş parçacığını oluşturmadan önce tam güven onaylamanız gerekir, aksi takdirde varsayılan yığın boyutu kullanılır. İş parçacığında çalışan kodu tam olarak denetlemediğiniz sürece bunu yapmayınız.
Minimum yığın boyutundan küçükse maxStackSize , minimum yığın boyutu kullanılır. Sayfa boyutunun katı değilse maxStackSize , sayfa boyutunun sonraki büyük katına yuvarlanmış olur.
Note
Windows XP ve Windows Server 2003 öncesi Microsoft Windows sürümlerinde maxStackSize yoksayılır ve yürütülebilir üst bilgide belirtilen yığın boyutu kullanılır.
Çok küçük bir yığın boyutu belirtirseniz, yığın taşması yoklama özelliğini devre dışı bırakmanız gerekebilir. Yığın ciddi şekilde kısıtlandığında, yoklamanın kendisi yığın taşmasına neden olabilir. Yığın taşması yoklama özelliğini devre dışı bırakmak için, .NET Framework uygulamasında uygulama yapılandırma dosyanıza aşağıdakileri ekleyin.
<configuration>
<runtime>
<disableStackOverflowProbing enabled="true"/>
</runtime>
</configuration>
Şunlara uygulanır
Thread(ThreadStart, Int32)
- Kaynak:
- Thread.cs
- Kaynak:
- Thread.cs
- Kaynak:
- Thread.cs
- Kaynak:
- Thread.cs
- Kaynak:
- Thread.cs
İş parçacığı için en büyük yığın boyutunu belirterek sınıfının yeni bir örneğini Thread başlatır.
public:
Thread(System::Threading::ThreadStart ^ start, int maxStackSize);
public Thread(System.Threading.ThreadStart start, int maxStackSize);
new System.Threading.Thread : System.Threading.ThreadStart * int -> System.Threading.Thread
Public Sub New (start As ThreadStart, maxStackSize As Integer)
Parametreler
- start
- ThreadStart
ThreadStart Bu iş parçacığı yürütülmeye başladığında çağrılacak yöntemleri temsil eden bir temsilci.
- maxStackSize
- Int32
İş parçacığı tarafından kullanılacak bayt cinsinden maksimum yığın boyutu veya yürütülebilir dosyanın üst bilgisinde belirtilen varsayılan en büyük yığın boyutunu kullanmak için 0.
Önemli Kısmen güvenilen kod için, maxStackSize varsayılan yığın boyutundan büyükse yoksayılır. İstisna atılmaz.
Özel durumlar
start, null'e eşittir.
maxStackSize, sıfırdan küçüktür.
Açıklamalar
Bu oluşturucu aşırı yükleme kullanmaktan kaçının. Oluşturucu aşırı yüklemesi tarafından Thread(ThreadStart) kullanılan varsayılan yığın boyutu, iş parçacıkları için önerilen yığın boyutudur. bir iş parçacığında bellek sorunları varsa, bunun en olası nedeni sonsuz özyineleme gibi programlama hatasıdır.
Important
.NET Framework 4'ten başlayarak, yalnızca tam olarak güvenilen kod maxStackSize varsayılan yığın boyutundan (1 megabayt) daha büyük bir değere ayarlayabilir. Kod kısmi güvenle çalışırken için maxStackSize daha büyük bir değer belirtilirse yoksayılır maxStackSize ve varsayılan yığın boyutu kullanılır. İstisna atılmaz. Herhangi bir güven düzeyindeki kod, varsayılan yığın boyutundan küçük bir değere ayarlanabilir maxStackSize .
Note
Kısmen güvenilen kod tarafından kullanılacak tam güvenilir bir kitaplık geliştiriyorsanız ve büyük bir yığın gerektiren bir iş parçacığı başlatmanız gerekiyorsa, iş parçacığını oluşturmadan önce tam güven onaylamanız gerekir, aksi takdirde varsayılan yığın boyutu kullanılır. İş parçacığında çalışan kodu tam olarak denetlemediğiniz sürece bunu yapmayınız.
Minimum yığın boyutundan küçükse maxStackSize , minimum yığın boyutu kullanılır. Sayfa boyutunun katı değilse maxStackSize , sayfa boyutunun sonraki büyük katına yuvarlanmış olur. Örneğin, Windows Vista üzerinde .NET Framework sürüm 2.0 kullanıyorsanız, en düşük yığın boyutu 256 KB (262.144 bayt) ve sayfa boyutu 64 KB (65.536 bayt) olur.
Note
Windows XP ve Windows Server 2003 öncesi Microsoft Windows sürümlerinde maxStackSize yoksayılır ve yürütülebilir üst bilgide belirtilen yığın boyutu kullanılır.
Çok küçük bir yığın boyutu belirtirseniz, yığın taşması yoklama özelliğini devre dışı bırakmanız gerekebilir. Yığın ciddi şekilde kısıtlandığında, yoklamanın kendisi yığın taşmasına neden olabilir. Yığın taşması yoklama özelliğini devre dışı bırakmak için, .NET Framework uygulamasında uygulama yapılandırma dosyanıza aşağıdakileri ekleyin.
<configuration>
<runtime>
<disableStackOverflowProbing enabled="true"/>
</runtime>
</configuration>