সাধারণভাবে ইভেন্ট হ্যান্ডলারগুলি কীভাবে কাজ করে?


14

এটি একটি সাধারণ বিষয়, ইভেন্ট হ্যান্ডলারগুলি কীভাবে কাজ করবে?

এর অর্থ পর্দার আড়ালে - যখন তৈরি হয় তখন কী হয়।

আমার মোটামুটি ধারণা আছে - তবে এটি নিশ্চিত হওয়া চাই।



উজ্জ্বল, পর্যবেক্ষক প্যাটার্নটি আমি যা পেয়েছিলাম তা ছিল: আমি এই সমস্যাটি সম্পর্কে ওয়েবের চারপাশে একটি পড়তে পেরেছি এবং ইভেন্ট ড্রাইভেন প্রোগ্রামিংয়ের বিষয়ে একটি ভাল কাগজ পড়েছি। এই কাগজের মধ্যে এটি হ্যান্ডলার ডিজাইন প্যাটার্নটির প্রক্রিয়া আলোচনা করে। এর মাধ্যমে আপনার ইভেন্টগুলির একটি বাষ্প যা একটি ডিসপ্যাচারে আসে যা এরপরে সেই ইভেন্টটি নেয় এবং এর ইভেন্টের ধরণটি নির্ধারণ করার জন্য এটি বিশ্লেষণ করে এবং তারপরে প্রতিটি ইভেন্টকে এমন কোনও হ্যান্ডলারের কাছে প্রেরণ করে যা সেই ধরণের ইভেন্টগুলি পরিচালনা করতে পারে।
JHarley1

1
এটি ব্যাখ্যা করে যে কীভাবে এটি একটি অসীম লুপ প্রেরণ করে যা কেবলমাত্র যখন বন্ধ হয় (উদাহরণস্বরূপ একটি জিইউআই অ্যাপ্লিকেশন সহ) প্রোগ্রামটি বন্ধ থাকে। এবং তারপরে আপনার কীভাবে একটি পর্যবেক্ষক প্যাটার্ন রয়েছে (বা প্রকাশ করুন / সাবস্ক্রাইব প্যাটার্ন) যা জিইউআই ফ্রেমওয়ার্কগুলির সাথে ইভেন্ট-ড্রাইভন প্রোগ্রামিং করতে ব্যাপকভাবে ব্যবহৃত হয় এবং কীভাবে এটি "আমাদের কল করবেন না আমরা আপনাকে ডাকব" এর হলিউড নীতিতে কাজ করে ।
JHarley1

উপরের ব্যাখ্যাটি কি পর্যাপ্ত?
JHarley1

এটা নির্ভর করে. একটি উচ্চ স্তরের পর্যালোচনার জন্য, এটি ঠিক আছে। তবে, একটি বিস্তৃত এবং পুঙ্খানুপুঙ্খ ব্যাখ্যার জন্য, হ্যাক নং। কোর্সের যেমন একটি ব্যাখ্যা সম্ভবত অনেকগুলি পৃষ্ঠাগুলি হতে পারে কারণ এটি উদাহরণস্বরূপ আপনি ওয়েব বনাম ডেস্কটপ ইভেন্ট স্টাফে প্রবেশ করতে পারেন ঠিক অভিনব হতে পারে।
জেবি কিং

উত্তর:


15

নিম্ন-স্তরে ইভেন্ট হ্যান্ডলাররা প্রায়শই কোনও ডিভাইসকে পোলিং করে এবং একটি হার্ডওয়্যার বিঘ্নিত হওয়ার জন্য অপেক্ষা করে কাজ করে । মূলত, একটি পটভূমি থ্রেড ব্লক করে, যখন একটি হার্ডওয়্যার বিঘ্নিত হওয়ার অপেক্ষা করে। যখন কোনও বাধাপ্রাপ্ত হয়, পোলের ফাংশনটি ব্লক করা বন্ধ করে দেয়। অ্যাপ্লিকেশনটি সনাক্ত করতে পারে কোন ডিভাইস হ্যান্ডেলটি বাধাগ্রস্থ করেছে, এবং এটি কী ধরণের বাধা ছিল এবং তারপরে সে অনুযায়ী কাজ করুন (উদাহরণস্বরূপ ইভেন্ট হ্যান্ডলারের ক্রিয়াকলাপটি শুরু করে)। এটি সাধারণত একটি পৃথক থ্রেডে করা হয় যাতে এটি অবিচ্ছিন্নভাবে ঘটে।

অবশ্যই এটি বাস্তবায়িত হওয়ার উপায়টি ওএস এবং ডিভাইস / ইনপুটের ধরণের উপর নির্ভর করে যথেষ্ট পরিবর্তিত হয়। ইউএনআইএক্স সিস্টেমগুলিতে, সকেট, সিরিয়াল বা ইউএসবি পোর্টের মতো ইভেন্টের জন্য ইভেন্ট হ্যান্ডলারগুলি যেভাবে প্রয়োগ করা হয় সেটি হল নির্বাচন বা পোল সিস্টেম কলগুলির মাধ্যমে। এক বা একাধিক ফাইল / ডিভাইস বর্ণনাকারী (যা কোনও নেটওয়ার্কের সকেট, সিরিয়াল / ইউএসবি পোর্ট ইত্যাদির মতো একটি ডিভাইসের সাথে যুক্ত) pollসিস্টেম কল-এ প্রেরণ করা হয় - যা প্রোগ্রামারকে নিম্ন স্তরের সি এপিআইয়ের মাধ্যমে উপলব্ধ করা হয়। যখন এই ডিভাইসগুলির মধ্যে একটিতে কোনও ইভেন্ট ঘটে, (যেমন ধরুন, কিছু ডেটা সিরিয়াল পোর্টে আসে) তখন পোল সিস্টেম কলটি ব্লক করা বন্ধ করে দেয় এবং অ্যাপ্লিকেশনটি নির্ধারণ করতে পারে যে কোন ডিভাইস বর্ণনাকারী ইভেন্টটি ঘটায় এবং এটি কী ধরণের ইভেন্ট ছিল determine ।

উইন্ডোজে এটি আলাদাভাবে পরিচালনা করা হয় তবে ধারণাগুলি মূলত একই রকম।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.