Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
.NET ile aynı anda birden çok işlem gerçekleştiren uygulamalar yazabilirsiniz. Diğer işlemleri engelleme potansiyeline sahip işlemler, "çoklu iş parçacığı kullanımı" veya "serbest iş parçacığı kullanımı" olarak bilinen bir süreç dahilinde farklı iş parçacıklarında yürütülebilir.
Çok iş parçacığı kullanan uygulamalar, işlemci yoğunluklu görevler ayrı iş parçacıklarında yürütülürken kullanıcı arabirimi etkin kaldığından kullanıcı girişlerine daha duyarlıdır. Ölçeklenebilir uygulamalar oluşturduğunuzda, iş yükü arttıkça iş parçacıkları ekleyebildiğiniz için çoklu iş parçacığı yararlı olur.
Uyarı
Uygulamanın iş parçacıklarının davranışı üzerinde daha fazla denetime ihtiyacınız varsa, iş parçacıklarını kendiniz yönetebilirsiniz. Ancak, çok iş parçacıklı programlama System.Threading.Tasks.Parallel, System.Threading.Tasks.Task sınıfları, Paralel LINQ (PLINQ), System.Collections.Concurrent ad alanındaki eşzamanlı koleksiyon sınıfları ve iş parçacıkları yerine görev kavramını temel alan bir programlama modeli ile büyük ölçüde basitleştirilir. Daha fazla bilgi için bkz. Paralel Programlama ve Görev Paralel Kitaplığı (TPL).
Nasıl Yapılır: Yeni bir thread oluşturmak ve başlatmak
Yeni bir sınıf örneği System.Threading.Thread oluşturarak yeni bir thread yaratırsınız. Oluşturucuya yeni iş parçacığında yürütmek istediğiniz yöntemin adını sağlarsınız. Oluşturulan bir iş parçacığını başlatmak için Thread.Start yöntemini çağırın. Daha fazla bilgi ve örnek için başlangıç zamanında iş parçacığı oluşturma ve veri geçirme makalesine ve API başvurusuna Thread bakın.
İş Parçacığını Durdurma Nasıl Yapılır
bir iş parçacığının yürütülmesini sonlandırmak için kullanın System.Threading.CancellationToken. İş parçacıklarını işbirliği içinde durdurmak için tek bir yöntem sağlar. Daha fazla bilgi için bkz. Yönetilen iş parçacıklarında iptal.
Bazen bir thread'i işbirliğiyle durdurmak mümkün değildir, çünkü üçüncü taraf kodu işbirlikçi iptal için uygun değildir. Bu durumda yürütmesini zorla sonlandırmak isteyebilirsiniz. Bir iş parçacığının yürütülmesini zorla sonlandırmak için .NET Framework'te Thread.Abort yöntemini kullanabilirsiniz. Bu yöntem, çağrıldığı iş parçacığında bir ThreadAbortException oluşturur. Daha fazla bilgi için İş parçacıklarını yok etme bölümüne bakın. Thread.Abort yöntemi .NET Core'da desteklenmez. Üçüncü taraf kodun yürütülmesini .NET Core'da zorla sonlandırmak istiyorsanız, kodu ayrı bir işlemde çalıştırın ve Process.Kill yöntemini kullanın.
System.Threading.CancellationToken.NET Framework 4'ün öncesinde kullanılamaz. Eski .NET Framework sürümlerinde iş parçacığını durdurmak için iş parçacığı eşitleme tekniklerini kullanarak işbirliğine dayalı iptal işlemini el ile uygulayın. Örneğin geçici boole alanını shouldStop oluşturabilir ve iş parçacığı tarafından yürütülen kodun durdurulmasını istemek için kullanabilirsiniz. Daha fazla bilgi için volatile bölümüne C# Başvurusu içinde bakın, ayrıca System.Threading.Volatile.
Thread.Join yöntemini, çağıran dizinin durdurulan dizinin sonlanmasını beklemesini sağlamak için kullanın.
Bir iş parçacığını duraklatma veya kesintiye uğratma kılavuzu
Belirli bir süre için geçerli iş parçacığını duraklatmak amacıyla Thread.Sleep yöntemini kullanırsınız. Thread.Interrupt yöntemini çağırarak bloklanmış bir iş parçacığını kesintiye uğratabilirsiniz. Daha fazla bilgi için bkz. İş parçacığı duraklatma ve kesintiye uğratma.
İş parçacığı özellikleri
Aşağıdaki tabloda bazı özellikler yer alır Thread :
| Mülkiyet | Açıklama |
|---|---|
| IsAlive | Normal şekilde sonlandırılmamış veya iptal edilmemiş bir iş parçacığı başlatıldıysa true döndürür. |
| IsBackground | Bir iş parçacığının arka plan iş parçacığı olup olmadığını belirten bir Boole değerini alır veya ayarlar. Arka plan iş parçacıkları ön plan iş parçacıkları gibidir. Ancak bir arka plan dizisi bir işlemin durmasını engellemez. Bir işleme ait tüm ön plan iş parçacıkları durduktan sonra, ortak dil çalışma zamanı hala etkin olan arka plan iş parçacıklarında Abort yöntemini çağırarak işlemi sonlandırır. Daha fazla bilgi için bkz. Ön Plan ve Arka Plan İş Parçacıkları. |
| Name | Bir thread'in adını alır veya ayarlar. Genellikle hata ayıklamada tek tek iş parçacıklarını ortaya çıkarmak için kullanılır. |
| Priority | İş parçacığı zamanlamasını önceliklendirmek için işletim sistemi tarafından kullanılan bir ThreadPriority değeri alır veya ayarlar. Daha fazla bilgi için bkz İş parçacıklarını zamanlama ve ThreadPriority başvuru. |
| ThreadState | İş ThreadState parçacığının geçerli durumlarını içeren bir değer alır. |