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

Görünüm: 21695|Yanıt: 1

[Kaynak] .net/c# Programınızı olumsuz etkileyen olaylara dikkat edin

[Bağlantıyı kopyala]
Yayınlandı 21.09.2016 16:05:58 | | | |
Olaylar ana iş parçacığında yüklenir ve çalıştırılır, ana iş parçacığındaki ilk olay bitmediyse, ana iş parçacığındaki diğer programlar gibi, ana iş parçacığında bir sonraki veya başka bir programı veya etkinliği işlemeden önce önceki olayın işlemesini beklersiniz.




Yukarıdaki durum, bir nesneyi kendim kapsülledim ve nesneye bir olayı kendim kapsülledim.

Verileri etkinliklere abone olma yönteminde işlerim, örneğin görsel açıklama kısmı,

Çünkü abone olduğum etkinlik okunan bir txt dosyasıydı ve txt dosyamda 50.000 satır vardı, bu da olay yönteminin 50.000 kez tetiklenmesine neden oluyordu.

Sonra programı çalıştırdığımda, arayüzümün askıya alınmış bir animasyon halinde olduğunu fark ettim ve orada bir sorun olmalıydı.

Başta sahte ölüme neden olan yöntemin arayüz kontrollerinin manipülasyonu olduğunu düşündüm.

Sonra, adım adım, seye veri eklendiğinde, askıya alınmış bir animasyon durumuna girmiş olduğu tespit edildi.

Neden??? Son olarak, internetten öğrendim ki olay ana başlıkta yer alıyor ve ilk olay işlemezse, bir sonraki etkinliğin yürütülmesini engelliyor,

Genel olarak ne sipariş ettiğimi anlıyordum, açıkçası, 50.000 olay programın engellenmesine neden oldu ve sonra askıya alınmış bir animasyon haline girdim.

Çözüm:

Bazı basit olaylar için, çok sayıda olay yönteminin yürütülmesine yol açmayacak ve doğrudan olay yöntemine yazılabilir.

Çağrılan çok sayıda olay yöntemi için, bununla başa çıkmak için bir başlık açarsınız, örneğin socket veya httplistener gibi. (veri miktarı azdır ve göremezsiniz, veri miktarı büyük olduğunda haha, doğrudan ölür)




Önceki:C# e-posta adresi kodlarını toplu olarak oluşturur
Önümüzdeki:Bulut yayın oyuncu analizi, Thunderbolt ve QQ fırtına arayüzü analizi
Yayınlandı 22.09.2016 09:23:17 |
Birisi çok iyi paylaşım yaptı, destek
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