Ini adalah topik umum, Bagaimana cara Penangan Acara berfungsi?
Ini berarti di balik layar - apa yang terjadi ketika mereka dibuat.
Saya punya ide kasar - tetapi ingin memastikannya.
event-programming
implementations
JHarley1
sumber
sumber
Jawaban:
Pada level rendah, event handler sering bekerja dengan polling perangkat dan menunggu gangguan perangkat keras. Intinya, thread latar belakang blok, sambil menunggu gangguan perangkat keras terjadi. Ketika interupsi terjadi, fungsi polling berhenti memblokir. Aplikasi kemudian dapat mengetahui gagang perangkat mana yang menyebabkan interupsi, dan jenis interupsi apa itu, dan kemudian bertindak sesuai (misalnya dengan menjalankan fungsi event handler). Ini biasanya dilakukan dalam utas terpisah sehingga itu terjadi secara tidak sinkron.
Tentu saja, cara ini sebenarnya diterapkan sangat bervariasi tergantung pada OS dan jenis perangkat / input. Pada sistem UNIX, salah satu cara yang penangan event dilaksanakan untuk hal-hal seperti soket, serial atau USB port adalah melalui pilih atau jajak pendapat panggilan sistem. Satu atau lebih deskriptor file / perangkat (yang dikaitkan dengan perangkat, seperti soket jaringan, port serial / USB, dll) diteruskan ke
poll
pemanggilan sistem - yang disediakan untuk pemrogram melalui API C tingkat rendah. Ketika suatu peristiwa terjadi pada salah satu perangkat ini, (seperti katakanlah, beberapa data tiba pada port serial), panggilan sistem jajak pendapat berhenti memblokir, dan aplikasi kemudian dapat menentukan deskriptor perangkat yang menyebabkan peristiwa tersebut, dan jenis acara apa itu .Pada Windows ini ditangani secara berbeda, tetapi konsep dasarnya sama.
sumber