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

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

[Kaynak] StringDictionary'de SyncRoot'un Kullanımı

[Bağlantıyı kopyala]
Yayınlandı 23.11.2016 14:26:38 | | | |

C# nesne yönelimli programlama, birçok kullanıcı dostu işlem sınıfı sunar, şimdi bu StringDictionary, dizeleri anahtar ve değer olarak saklamaya uzmanlaşmış bir sınıf koleksiyonu, bu sınıfın anlamı şudur: C#, değer tipindeki dizinin oldukça yaygın olduğunu bilir, diğer değer türleri de karşılık gelen string tiplerine dönüştürülebilir, bu koleksiyonun anlamı budur, ancak yine de başka koleksiyon nesnelerini kullanarak onu değiştirebilirsiniz, ancak bir noktaya dikkat edin, Eğer bu dizi depolama ise, bu bellek kaybını azaltabilir ve programın çalıştırılması için gereken süreyi azaltabilir


SyncRoot, StringDictionary'ye erişimi senkronize etmek için kullanılabilir

Açıkça söylemek gerekirse, bu kilit kavramı, bunu test etmek için bir program yazalım:

Kod şöyledir:



Aynı anda StringDictionary sözlüğüne veri eklemek için iki iş parçacığı var,

İlk iş parçacığı ile ikinci iş parçacığı arasındaki uygulama süresi farkı bir saniyedir; böylece zaman farkı genişletilir ve yürütme çok hızlı olur.

İş parçacıklarının iki yönteme gittiğini görebilirsiniz ve ikinci veri eklendiğinde, ikinci veriyi eklemeden önce ilk verinin eklenmesini beklemişlerdir ve toplama süresi çok hızlıdır.

Aşağıda, anlaşılmasını kolaylaştırmak için farklı bir şekilde yazacağız:





3 iş parçacığı açılır, veri eklenir ve 3 iş parçacığı neredeyse aynı anda çalıştırılır, ancak veri eklendiğinde her biri 10 saniye arayla gerçekleşir.

Özetle, çoklu iş parçacıklı erişimde, iş parçacığı güvenliğini sağlamak için SyncRoot kullanabilirsiniz




Önceki:WPF Trigger ile düğmeleri nasıl değiştiririm
Önümüzdeki:c# Çin görüntülerini tanımak için OCR kullanın
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