পরিভাষা
ইভেন্ট : ঘটতে পারে এমন এক ধরণের জিনিস।
ইভেন্ট গুলিবর্ষণ : একটি ইভেন্টের একটি নির্দিষ্ট ঘটনা; একটি ঘটনা ঘটছে।
ইভেন্ট শ্রোতা : এমন কিছু যা ইভেন্টের জালিয়াতির জন্য সন্ধান করে।
ইভেন্ট হ্যান্ডলার : একটি ইভেন্ট শ্রোতা একটি ইভেন্টের ফায়ারিং সনাক্ত করে।
ইভেন্ট গ্রাহক : ইভেন্ট হ্যান্ডলারের কল করার একটি প্রতিক্রিয়া।
এই সংজ্ঞাগুলি প্রয়োগের উপর নির্ভর করে না, তাই এগুলি বিভিন্ন উপায়ে প্রয়োগ করা যেতে পারে।
এর মধ্যে কয়েকটি শব্দের সাধারণত প্রতিশব্দ হিসাবে ভুল হয় কারণ ব্যবহারকারীদের মধ্যে প্রায়শই পার্থক্য করার প্রয়োজন হয় না।
সাধারণ পরিস্থিতি
প্রোগ্রামিং-লজিক ইভেন্ট।
ঘটনা যখন কিছু পদ্ধতি বলা পরার।
একটি ইভেন্ট ফায়ারিং সেই পদ্ধতির একটি বিশেষ কল।
ঘটনা শ্রোতা ইভেন্ট পদ্ধতি প্রতিটি ঘটনা অগ্নিসংযোগ যে ইভেন্ট হ্যান্ডলার কল বলা হচ্ছে একটি হুক হয়।
ইভেন্ট হ্যান্ডলার ঘটনা গ্রাহক একটি সংগ্রহ কল।
ঘটনা গ্রাহক (গুলি) সঞ্চালন যাই হোক না কেন কর্ম (গুলি) সিস্টেম ইভেন্টের সংঘটন প্রতিক্রিয়ায় ঘটতে মানে।
বাহ্যিক ঘটনা।
ঘটনা একটি বহিস্থিত ঘটনাকেই যে observables থেকে অনুমিত হতে পারে।
একটি ইভেন্টের গুলি ছড়িয়ে দেওয়া হয় যখন বাহ্যিক ঘটনা ঘটেছিল বলে স্বীকৃত হতে পারে।
ঘটনা শ্রোতা একরকম ঘটনা গুলির সনাক্ত প্রায়ই পোলিং দ্বারা পর্যবেক্ষণযোগ্য (গুলি), তারপর, এটা এমন একটি ইভেন্টের অগ্নিসংযোগ সনাক্ত উপর ইভেন্ট হ্যান্ডলার কল।
ইভেন্ট হ্যান্ডলার ঘটনা গ্রাহক একটি সংগ্রহ কল।
ঘটনা গ্রাহক (গুলি) সঞ্চালন যাই হোক না কেন কর্ম (গুলি) সিস্টেম ইভেন্টের সংঘটন প্রতিক্রিয়ায় ঘটতে মানে।
পোলিং বনাম বনাম ইভেন্টের ফায়ারিং প্রক্রিয়াটিতে হুক প্রবেশ করানো
অন্যদের দ্বারা তৈরি করা বক্তব্যটি হ'ল ভোট দেওয়ার প্রায়শই প্রয়োজন হয় না। এর কারণ ইভেন্ট শ্রোতারা স্বয়ংক্রিয়ভাবে ইভেন্ট হ্যান্ডলারকে কল করে ইভেন্ট প্রয়োগকারীদের প্রয়োগ করা যেতে পারে, যখন ইভেন্টগুলি সিস্টেম-স্তরের ঘটনাগুলি ঘটে তখন প্রায়শই জিনিসগুলি বাস্তবায়নের সবচেয়ে কার্যকর উপায়।
সাদৃশ্য অনুসারে, ডাক কর্মী যদি আপনার দরজায় নক করে এবং সরাসরি আপনাকে মেইলটি হস্তান্তর করে তবে আপনাকে প্রতিদিন মেইলের জন্য আপনার মেইল বাক্সটি পরীক্ষা করার দরকার নেই।
তবে ইভেন্ট শ্রোতারাও ভোট দিয়ে কাজ করতে পারবেন। ভোটদানের জন্য প্রয়োজনীয় কোনও নির্দিষ্ট মান বা অন্যান্য পর্যবেক্ষণযোগ্য পরীক্ষা করা প্রয়োজন হয় না; এটা আরও জটিল হতে পারে। তবে সামগ্রিকভাবে, যখন কোনও ইভেন্ট এমন ঘটেছিল যে এর প্রতিক্রিয়া জানাতে পারে তখন ভোট দেওয়ার বিষয়টি বিবেচনা করা।
সাদৃশ্য অনুসারে, ডাক কর্মী যখন এতে কেবল মেল ফেলে দেয় তখন আপনাকে প্রতিদিন আপনার মেইল বাক্সটি পরীক্ষা করতে হবে। আপনি যদি ডাক কর্মীকে আপনার দরজায় কড়া নাড়ানোর নির্দেশ দিতে পারেন তবে আপনাকে এই পোলিংয়ের কাজটি করতে হবে না, তবে এটি প্রায়শই সম্ভাবনা নয়।
চেইন ইভেন্ট লজিক
অনেক প্রোগ্রামিং ভাষায়, আপনি একটি ইভেন্ট লিখতে পারেন যা কেবল তখনই বলা হয় যখন কীবোর্ডের একটি কী টিপে দেওয়া হয় বা নির্দিষ্ট সময়ে। যদিও এটি বাহ্যিক ইভেন্ট, আপনার তাদের জন্য জরিপ করার দরকার নেই। কেন?
এটি কারণ অপারেটিং সিস্টেমটি আপনার পক্ষে ভোটদান করছে। উদাহরণস্বরূপ, উইন্ডোজ কীবোর্ডের রাজ্যের পরিবর্তনের মতো স্টাফগুলি পরীক্ষা করে এবং যদি এটি সনাক্ত করে তবে এটি ইভেন্টের গ্রাহকদের কল করবে। সুতরাং, আপনি যখন কোনও কীবোর্ড প্রেস ইভেন্টে সদস্যতা নিচ্ছেন, আপনি আসলে এমন একটি ইভেন্টের সদস্যতা নিচ্ছেন যা পোলিং হওয়া কোনও ইভেন্টের নিজেই গ্রাহক।
উপমা অনুসারে, বলুন যে আপনি একটি অ্যাপার্টমেন্ট কমপ্লেক্সে বাস করছেন এবং একটি ডাক কর্মী একটি সাম্প্রদায়িক মেইল রসিদ অঞ্চলে মেল ফেলে দেয় drops তারপরে, একটি অপারেটিং সিস্টেম-এর মতো কর্মী প্রত্যেকের জন্য সেই মেলটি পরীক্ষা করে, যারা কিছু পেয়েছিল তাদের অ্যাপার্টমেন্টগুলিতে মেল সরবরাহ করে can এটি অন্য সকলকে মেল-প্রাপ্তির ক্ষেত্রটি পোল করার ঝামেলা থেকে রেহাই দেয়।
আমার অন্তর্দৃষ্টিটি ধরে নিবে যে ইভেন্ট শ্রোতা ক্রমাগত পরীক্ষা করে থাকে যে ঘটনাটি চালিত হয়েছে কিনা, অর্থাত্ আমার দৃশ্যে, ঘটনাটি সরিয়ে দেওয়া হয়েছে কিনা তা প্রতিটি ফ্রেম পরীক্ষা করে দেখার চেয়ে আলাদা হবে না।
শ্রেণিতে আলোচনার ভিত্তিতে, মনে হয় ইভেন্ট শ্রোতা অন্যভাবে কাজ করেন।
কোনও ইভেন্ট শ্রোতা কীভাবে কাজ করে?
আপনি যেমন সন্দেহ করেছেন, কোনও ইভেন্ট ভোট দেওয়ার মাধ্যমে কাজ করতে পারে । এবং যদি কোনও ইভেন্ট কোনওভাবে বাহ্যিক ঘটনার সাথে সম্পর্কিত হয়, উদাহরণস্বরূপ একটি কীবোর্ড কী টিপে দেওয়া হচ্ছে, তবে পোলিংটি কোনও পর্যায়ে ঘটতে হবে।
এটি ঠিক এটি সত্য যে ইভেন্টগুলিতে ভোট দেওয়ার সাথে জড়িত থাকার প্রয়োজন হয় না। উদাহরণস্বরূপ, যদি ইভেন্টটি এমন হয় যখন একটি বোতাম টিপানো হয়, তবে সেই বাটনের ইভেন্ট শ্রোতা এমন একটি পদ্ধতি যা জিইউআই ফ্রেমওয়ার্কটি কল করতে পারে যখন এটি নির্ধারণ করে যে মাউস ক্লিক বোতামটি হিট করে। এই ক্ষেত্রে, মাউস ক্লিক সনাক্ত করার জন্য এখনও পোলিং হওয়া দরকার ছিল, তবে মাউস-শ্রোতা ইভেন্ট-শৃঙ্খলার মাধ্যমে আদিম ভোটদান ব্যবস্থার সাথে যুক্ত আরও একটি প্যাসিভ উপাদান।
আপডেট: নিম্ন-স্তরের হার্ডওয়্যার পোলিংয়ে
এটি প্রমাণিত হয়েছে যে ইউএসবি ডিভাইস এবং অন্যান্য আধুনিক যোগাযোগ প্রোটোকলগুলির মধ্যে ইন্টারঅ্যাকশনগুলির জন্য একটি বরং আকর্ষণীয় নেটওয়ার্কিংয়ের মতো প্রোটোকল সেট রয়েছে, যা কি-বোর্ড এবং ইঁদুর সহ আই / ও ডিভাইসগুলিকে অ্যাডহক টপোলজগুলিতে জড়িত করে তোলে।
মজার বিষয় হল, " বাধা " মোটামুটি প্রয়োজনীয়, সিঙ্ক্রোনাস জিনিস, তাই তারা অ্যাডহক নেটওয়ার্কিং টপোলজিগুলি পরিচালনা করে না । এটির সমাধানের জন্য, " বিঘ্নিতগুলি " অ্যাসিঙ্ক্রোনাস উচ্চ-অগ্রাধিকার প্যাকেটে সাধারণীকরণ করা হয়েছে " ইন্টারপট লেনদেন " (ইউএসবি প্রসঙ্গে) বা " বার্তা-সংকেতযুক্ত বাধা " (পিসিআই এর প্রসঙ্গে)। এই প্রোটোকলটি একটি ইউএসবি স্পেসিফিকেশনে বর্ণিত হয়েছে:
- " চিত্র 8-31। " ইউনিভার্সাল সিরিয়াল বাস স্পেসিফিকেশন, রিভিশন 2.0 " , মুদ্রিত পৃষ্ঠা -222 এ বাল্ক / কন্ট্রোল / ইন্টারপট আউট ট্রানজেকশন হোস্ট স্টেট মেশিন " ; পিডিএফ-পৃষ্ঠা-250 (2000-04-27)
সংক্ষেপে মনে হচ্ছে I / O ডিভাইস এবং যোগাযোগের উপাদানগুলি (ইউএসবি হাবের মতো) মূলত নেটওয়ার্ক ডিভাইসের মতো কাজ করে। সুতরাং, তারা বার্তা প্রেরণ করে যার জন্য তাদের বন্দরগুলি পোলিংয়ের প্রয়োজন হয়। এটি ডেডিকেটেড হার্ডওয়্যার লাইনের প্রয়োজনীয়তা হ্রাস করে।
উইন্ডোজের মত অপারেটিং সিস্টেম পোলিং প্রক্রিয়া নিজেই হ্যান্ডেল বলে মনে হচ্ছে, যেমন বর্ণনা অনুযায়ী জন্য MSDN ডকুমেন্টেশন USB_ENDPOINT_DESCRIPTOR
এর কীভাবে নিয়ন্ত্রণ করতে বর্ণনা কিভাবে প্রায়ই উইন্ডোজ নির্বাচনে বিঘ্ন / সমসময়ান্তরী বার্তাগুলির জন্য একটি USB হোস্ট কন্ট্রোলার:
bInterval
মান বিঘ্ন আইসোক্রোনাস এন্ড পয়েন্ট জন্য পোলিং ব্যবধান রয়েছে। অন্যান্য ধরণের শেষ পয়েন্টের জন্য, এই মানটিকে উপেক্ষা করা উচিত। এই মানটি ফার্মওয়্যারটিতে ডিভাইসের কনফিগারেশনকে প্রতিফলিত করে। চালকরা এটি পরিবর্তন করতে পারবেন না।
ভোটদানের ব্যবধান, ডিভাইসের গতি এবং হোস্ট কন্ট্রোলারের ধরণের সাথে একত্রে যে ফ্রিকোয়েন্সিটি চালককে বাধা বা আইসোক্রোনাস স্থানান্তর শুরু করতে হবে তা নির্ধারণ করে। মানটি bInterval
একটি নির্দিষ্ট সময়কে উপস্থাপন করে না। এটি একটি আপেক্ষিক মান, এবং আসল ভোটদানের ফ্রিকোয়েন্সিটি ডিভাইস এবং ইউএসবি হোস্ট কন্ট্রোলার কম, পূর্ণ বা উচ্চ গতিতে কাজ করে কিনা তার উপরও নির্ভর করবে।
- "USB_ENDPOINT_DESCRIPTOR কাঠামো" , হার্ডওয়্যার ডেভ সেন্টার, মাইক্রোসফ্ট
ডিসপ্লেপোর্টের মতো নতুন মনিটরের সংযোগ প্রোটোকলগুলিও এটি করে বলে মনে হচ্ছে:
মাল্টি-স্ট্রিম ট্রান্সপোর্ট (এমএসটি)
"ডিসপ্লেপোর্টটিএম ভার.1.1.2 ওভারভিউ" (2010-12-06) থেকে স্লাইড # 14
এই বিমূর্ততা কিছু ঝরঝরে বৈশিষ্ট্যগুলির জন্য মঞ্জুরি দেয় যেমন একটি সংযোগ থেকে 3 টি মনিটর চালানো:
ডিসপ্লেপোর্ট মাল্টি-স্ট্রিম ট্রান্সপোর্ট এছাড়াও তিন বা ততোধিক ডিভাইস একসাথে সংযুক্ত করার অনুমতি দেয় তবে বিপরীতে কম "ভোক্তা" -মুখী কনফিগারেশন: একসাথে একক আউটপুট পোর্ট থেকে একাধিক ডিসপ্লে ড্রাইভিং করে।
- "ডিসপ্লেপোর্ট" , উইকিপিডিয়া
ধারণামূলকভাবে, এ থেকে দূরে সরে যাওয়ার বিষয়টি হ'ল পোলিং পদ্ধতিগুলি আরও সাধারণীকরণযোগ্য সিরিয়াল যোগাযোগের জন্য অনুমতি দেয়, আপনি যখন আরও সাধারণ কার্যকারিতা চান তখন দুর্দান্ত। সুতরাং, হার্ডওয়্যার এবং ওএস লজিকাল সিস্টেমের জন্য প্রচুর পোলিং করে। তারপরে, ইভেন্টগুলিতে সাবস্ক্রাইব করা গ্রাহকরা তাদের নিজস্ব পোলিং / বার্তা-পাসিং প্রোটোকল না লিখে নিম্ন স্তরের সিস্টেম দ্বারা তাদের জন্য পরিচালিত সেই বিবরণগুলি উপভোগ করতে পারবেন।
শেষ পর্যন্ত, কী-প্রেসগুলির মতো ইভেন্টগুলি সফ্টওয়্যার-স্তরের অত্যাবশ্যক ইভেন্ট-ফায়ারিংয়ের যন্ত্রে পৌঁছানোর আগে ইভেন্টগুলির একটি বরং আকর্ষণীয় সিরিজের মধ্য দিয়ে যায় বলে মনে হয়।