Aracılığıyla paylaş


Yönetilen iş parçacıklarındaki özel durumlar

Ortak dil çalışma zamanı, iş parçacıklarındaki işlenmeyen özel durumların çoğunun doğal olarak ilerlemesine olanak tanır. Çoğu durumda bu, işlenmeyen özel durumun uygulamanın sonlandırılmasına neden olduğu anlamına gelir. Ancak ortak dil çalışma zamanı, program akışını denetlemek için kullanılan belirli işlenmemiş özel durumlar için bir arka uç sağlar:

  • bir ThreadAbortException iş parçacığında, Abort çağrıldığı için fırlatılır. Bu yalnızca .NET Framework uygulamaları için geçerlidir.

  • İş AppDomainUnloadedException parçacığının yürütülmekte olduğu uygulama etki alanı kaldırıldığı için bir iş parçacığında oluşturulur.

  • Ortak dil çalışma zamanı veya konak işlemi, iç özel durum oluşturarak iş parçacığını sonlandırır.

Bu özel durumlardan herhangi biri ortak dil çalışma zamanı tarafından oluşturulan iş parçacıklarında işlenmemişse, özel durum iş parçacığını sonlandırır, ancak ortak dil çalışma zamanı özel durumun daha fazla ilerlemesine izin vermez.

Bu istisnalar ana iş parçacığında veya yönetilmeyen koddan çalışma zamanına giren iş parçacıklarında işlenmezse, normal şekilde ilerler ve uygulamanın sonlandırılmasına yol açar.

Uyarı

Herhangi bir yönetilen kodun özel durum işleyicisi yükleme şansı olmadan, çalışma zamanının işlenmemiş bir özel durum atması mümkündür. Yönetilen kodun böyle bir özel durumu işleme şansı olmasa da, özel durumun doğal olarak ilerlemesine izin verilir.

Geliştirme sırasında iş parçacığı problemlerini ortaya çıkarma

İş parçacıklarına, uygulamayı sonlandırmadan sessiz bir şekilde başarısız olmasına izin verildiğinde, ciddi programlama sorunları fark edilmeden kalabilir. Bu, uzun süreler boyunca çalışan hizmetler ve diğer uygulamalar için belirli bir sorundur. İş parçacıkları başarısız olduğunda, program durumu yavaş yavaş bozulur. Uygulama performansı düşebilir veya uygulama yanıt vermemeye başlayabilir.

İşletim sistemi programı sonlandırana kadar iş parçacıklarında işlenmeyen özel durumların doğal olarak ilerlemesine izin vermek, geliştirme ve test sırasında bu tür sorunları ortaya çıkarır. Program sonlandırmalarıyla ilgili hata raporları hata ayıklamayı destekler.

Ana bilgisayar geçersiz kılma

Yönetilmeyen bir konak, ortak dil çalışma zamanının varsayılan işlenmeyen özel durum ilkesini geçersiz kılmak için Barındırma API'sindeki ICLRPolicyManager arabirimini kullanabilir. ICLRPolicyManager::SetUnhandledExceptionPolicy işlevi, işlenmeyen özel durumlar için ilkeyi ayarlamak için kullanılır.

Ayrıca bakınız