Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 19029|Yanıt: 0

[Kaynak] C#, çok iş parçacıklı bir ortamda güvenli geçiş işlemleri gerçekleştirir

[Bağlantıyı kopyala]
Yayınlandı 18.10.2016 13:55:48 | | |

Bu makale, işlem nesnesi olarak List'i kullanır
MSDN, List'in konu güvenliği açıklamasını resmen sunuyor:
Bu tür açık statik üye iş parçacığı için güvenlidir. Ancak, hiçbir örnek üyesinin iş parçacığı güvenli olacağı garanti edilemez.
Koleksiyon değiştirilmediği sürece, List aynı anda birden fazla okuyucuyu destekleyebilir. Bir küme üzerinden saymak doğal olarak iş parçacığı güvenli bir süreç değildir. Bir sayımın bir veya daha fazla yazma erişimiyle rekabet ettiği nadir durumlarda, iş parçacıklarını güvende tutmanın tek yolu koleksiyonu tüm sayma süresi boyunca kilitlemektir. Birden fazla iş parçacığının koleksiyona erişmesini sağlamak için kendi senkronizasyonunuzu uygulamalısınız.
Senkronize etmezseniz?
Bir iş parçacığı silme işlemi yaparsa, bir iş parçacığı geçiş işlemi yaparsa, geçiş işlemi sırasında koleksiyon değiştirilir ve bu da InvalidOperationException istisnasının ortaya çıkmasına neden olur ve soru sorar: koleksiyon değiştirilmiştir; Sayma işlemleri yapılamaz.
Geçiş güvenliğini sağlamak için senkronize nasıl yapılır
Burada iş parçacığı geçiş sürecini güvence altına almak için kritik bölgeler, muteksler kullanılır, örnek kodu şöyledir:






Önceki:China Unicom altında WeChat resmi hesabının jssdk imza hatasına çözüm
Önümüzdeki:asp.net MVC küresel istisna işleme ve istisna günlükleri
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com