Günlük geliştirmede, "ilk girer, ilk çıkar" (ilk girer, ilk çıkar) sağlayan bir depolama yapısı olan kuyruklar kullanılabilir.
Uygulama senaryoları: kayıt yazmak, e-posta göndermek vb
Eğer verilerimizi talep eden her kullanıcının arayüz günlüğünü kaydetmemiz gerekiyorsa, kullanıcı her istediğinde günlük yazmamıza gerek yok, günlük içeriğini kuyruğa koyup diğer iş parçacıklarının çalıştırmasına izin verebiliriz, böylece uygulamanın verimliliği etkilenmez.
Bir diğer avantaj ise, eşzamanlılık durumunda kuyruğa veri eklemek, kuyruğun verilerini tek bir iş parçacığı kullanmak birçok istisnadan kaçınabilir; eşzamanlılık (çok iş parçacıklı) ise aynı fiziksel dosyaya erişim istisnalara yol açar. (müsaitliğe bağlı olarak)
Kuyruk evrensel yaklaşımı:
Bu bir soyut sınıftır ve bu soyutlama sınıfını devralıp Execute soyutlama yöntemini uygulamanız gerekir. Hangi tür veri işlemek istediğinizi bilmiyorum, burada genel veriler kullanılıyor, yani Entity string tipinde, metod parametreleri string tipinde, işlediğiniz veri ise string tipi veri.
ConcurrentQueue iş parçacığı güvenli kuyruğu, çok iş parçacıklı bir ortamda istisna olmamasını sağlar.
ManualResetEvent, iş parçacığının sinyalini kontrol etmek için,Geçmişte, kuyrukta veri için her birkaç saniyede veya dakikada bir kontrol ederdikŞimdi veriyi kuyruğa ekliyoruz ve sadece bir sinyal iletmemiz yeterli!
Kullanım:
(Son)
|