ايران ويج

نسخه‌ی کامل: روش کار event ها
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام.
یه سوال در مورد event ها دارم.

میخوام بدونم یه event چطور از انجام رویدادی با خبر میشه.

وقتی تو پروژه delegate و event تعریف میکنیم خودمون مشخص میکنیم اون Event کی رخ میده. چون اون event در سطح پروژه ماست و زمان رخدادش هم دست خودمونه.

اما در سطح سیستم عامل وضع به چه صورته؟

یه مثال میزنم.
چند وقت پیش تو یه پروژه باید از اتصال کامپیوتر به شبکه مطلع میشدم. راه آماتورش این بود که بیام یه حلقه بذارم و هر ثانیه اتصال به شبکه رو چک کنم. راه اصولی و منطقی تر این بود که از event ها استفاده کنم. eventی تو پروژه قرار دادم که به محض اتصال به شبکه اجرا میشد.

حالا میخوام بدونم این event چطور از اتصال به شبکه با خبر میشه؟ آیا برنامه در پشت پرده هر ثانیه اتصال به اینترنت رو چک میکنه ( که بعید میدونم دست هایی پشت پرده باشه. چون در این صورت با افزایش event ها باید کارکرد CPU بالا بره. ولی نمیره ) ؟ یا نه به محض اتصال به اینترنت سیستم عامل میاد به همه برنامه هایی که منتظر این رویداد بودن اطلاع میده؟
فکر کنم کلا همه چی رویدادی باشه توی سیستم عامل. البته حلقه هم شاید باشه بلاخره توی سطوح پایین حلقه هم هست حتما؟
رویداد های اصلی با وقفه های سیستم عامل شناخته میشوند اما رویداد هایی که برنامه نویسان طراحی میکنند یا کلا جزو رویداد های اصلی نیستند فکر میکنم یا بطور مستقیم از حلقه استفاده میکنند یا اینکه در نهایت به حلقه ختم میشه ، اینکه سرعت کاهش پیدا نمیکنه شاید دلیلش این باشه که رویداد ها یی که از حلقه استفاده میکنند همگی از یک حلقه سیستمی استفاده میکنند اما خودمان اگر بصورت دستی حلقه بنویسیم حلقه هم جدا گونه انجام میشه هم چون در سطوح بالاتر اجرا میشه سرعت کمتری داره...
این اطلاعات ناقص من بود
سلام.
البته منظور من از بالا رفتن راندمان CPU کاهش سرعت نبود. چون event ها خیلی فشار به CPU نمیارن. اونم با CPU های چند هسته ایه الآن.
ولی اگه قراره حلقه استفاده کنن و event های زیادی هم استفاده شده باشه کارکرد اون پروسه حداقل باید مثلا بین 0 و 1 و 2 درصد نوسان داشته باشه. ولی نه تا حدی که سرعت سیستم به طور محسوس کم بشه.
سلام.
چی شد پس؟ هیچ کی نظری نداره؟