Genel olarak Olay İşleyicileri nasıl çalışır?


14

Bu, Olay İşleyicileri nasıl çalışır?

Bu, perde arkasında - yaratıldıklarında ne olacağı anlamına gelir.

Kabaca bir fikrim var - ama doğrulamasını istiyorum.



Parlak, Gözlemci deseni bulduğum şeydi: Bu konuyla ilgili web'de bir okuma yaptım ve Olaya Dayalı Programlama konusunda iyi bir makale okudum. Bu yazıda, İşleyiciler Tasarım Deseni süreci tartışılmaktadır. Burada, bir Dispatcher'a gelen ve daha sonra o olayı alan ve olay türünü belirlemek için analiz eden ve daha sonra her olayı o tür olayları işleyebilen bir işleyiciye gönderen bir Olaylar buharınız vardır.
JHarley1

1
Dağıtım programının yalnızca program kapatıldığında (örneğin bir GUI Uygulaması ile) durdurulan sonsuz bir döngü olduğunu açıklar. Ve sonra GUI çerçeveleriyle Olay Odaklı Programlama yapmak için yaygın olarak kullanılan bir Gözlemci Düzeniniz (veya Yayınlama / Abone Olma Düzeni) nasıl olur ve "Sizi Bizi Arayalım" Hollywood prensibiyle nasıl çalışır .
JHarley1

Yukarıdaki açıklamanın yeterli olduğunu söyleyebilir misiniz?
JHarley1

Değişir. Üst düzey bir genel bakış için sorun yok. Ancak, kapsamlı ve kapsamlı bir açıklama için heck no. Tabii ki bu tür bir açıklama muhtemelen birçok sayfa iş olacaktır, çünkü web'e masaüstü olaylarına karşı girebileceğiniz gibi oldukça süslü olabilir.
JB King

Yanıtlar:


15

Düşük düzeyde bir olay işleyicileri genellikle bir aygıtı yoklayarak ve bir donanım kesintisi bekleyerek çalışır. Temel olarak, bir arka plan iş parçacığı, bir donanım kesintisinin gerçekleşmesini beklerken engeller. Bir kesinti meydana geldiğinde, yoklama işlevi engellemeyi durdurur. Uygulama daha sonra hangi aygıt tutamacının kesintiye neden olduğunu ve ne tür bir kesinti olduğunu bulabilir ve ardından buna göre hareket edebilir (örneğin bir olay işleyici işlevini çağırarak). Bu genellikle ayrı bir iş parçacığında yapılır, böylece eşzamansız olarak gerçekleşir.

Tabii ki, bunun gerçekte uygulanma şekli, işletim sistemine ve cihaz / giriş türüne bağlı olarak önemli ölçüde değişir. UNIX sistemlerinde, olay işleyicilerinin soket, seri veya USB bağlantı noktaları gibi şeyler için uygulanmasının bir yolu, seçme veya yoklama sistem çağrılarıdır. Bir veya daha fazla dosya / cihaz tanımlayıcısı (ağ soketi, seri / USB bağlantı noktası, vb. Gibi bir cihazla ilişkilendirilmiş) pollsistem çağrısına aktarılır - bu da programcıya düşük seviyeli bir C API aracılığıyla sunulur. Bu cihazlardan birinde bir olay meydana geldiğinde (örneğin, bir seri bağlantı noktasına bazı veriler geldiğinde), anket sistemi çağrısı engellenmeyi durdurur ve uygulama daha sonra hangi cihaz tanımlayıcısının olaya neden olduğunu ve ne tür bir olay olduğunu belirleyebilir .

Windows'da bu farklı şekilde ele alınır, ancak kavramlar temel olarak aynıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.