Message loop in Microsoft Windows
میسج لوپ ہر پروگرام میں کوڈ کا ایک لازمی حصہ ہے جو مائیکروسافٹ ونڈوز کے تحت گرافیکل یوزر انٹرفیس استعمال کرتا ہے۔ جن ونڈوز پروگراموں میں جی یو آئی ہوتا ہے وہ ایونٹ پر مبنی ہوتے ہیں۔ ونڈوز ہر تھریڈ کے لیے ایک انفرادی پیغام کی قطار برقرار رکھتی ہے جس نے ونڈو بنائی ہے۔ عام طور پر صرف پہلا دھاگہ ہی کھڑکیاں بناتا ہے۔ ونڈوز اس قطار میں پیغامات رکھتی ہے جب بھی اس دھاگے کی ونڈو پر ماؤس کی سرگرمی ہوتی ہے، جب بھی کی بورڈ کی سرگرمی ہوتی ہے جب کہ اس ونڈو میں فوکس ہوتا ہے، اور دوسرے اوقات میں۔ ایک عمل اپنی قطار میں پیغامات بھی شامل کر سکتا ہے۔ صارف کے ان پٹ کو قبول کرنے کے لیے، اور دیگر وجوہات کی بناء پر، ونڈو والے ہر تھریڈ کو اپنی قطار سے پیغامات کو مسلسل بازیافت کرنا چاہیے، اور ان پر عمل کرنا چاہیے۔ ایک پروگرامر اس عمل کو ایک لوپ لکھ کر کرتا ہے جو گیٹ میسج کو کال کرتا ہے (جو کسی پیغام کو روکتا ہے اور اسے بازیافت کرتا ہے)، اور پھر ڈسپیچ میسج کو کال کرتا ہے (جو پیغام بھیجتا ہے)، اور غیر معینہ مدت تک دہراتا ہے۔ یہ میسج لوپ ہے۔ عام طور پر مرکزی پروگرام میں ایک میسج لوپ ہوتا ہے، جو مرکزی دھاگے پر چلتا ہے، اور ہر تخلیق شدہ موڈل ڈائیلاگ میں اضافی میسج لوپ ہوتا ہے۔ عمل کی ہر ونڈو کے لیے پیغامات اس کے پیغام کی قطار سے گزرتے ہیں، اور اس کے پیغام لوپ کے ذریعے سنبھالے جاتے ہیں۔ میسج لوپ ایک قسم کا ایونٹ لوپ ہوتا ہے۔ ایک بنیادی میسج لوپ مندرجہ ذیل ظاہر ہوتا ہے: انٹی وینیپی ون مین (ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس ہائنسٹینس {// غلطی کو ہینڈل یا لاگ ان کریں ؛ ممکنہ طور پر باہر نکلیں۔ //.} ورنہ اگر (bRet! = 0)// اگر bRet 0 یا-1 نہیں ہے، تو پیغام پر کارروائی کی جانی چاہیے۔ {ٹرانسلیٹ میسج (& msg); ڈسپیچ میسج (& msg);} بصورت دیگر// اگر bRet 0 ہے تو میسج لوپ باہر نکل جانا چاہیے۔ ایونٹ لوپ کے لیے ہر پیغام پر ٹرانسلیٹ میسج کو کال کرنا روایتی ہے جو ورچوئل کیسٹروک کو سٹرنگ میں ترجمہ کر سکتا ہے۔ ٹرانسلیٹ میسج پر کال کرنا تکنیکی طور پر ضروری نہیں ہے، لیکن اگر اسے کال نہیں کیا گیا تو اس کے نتیجے میں مسائل پیدا ہو سکتے ہیں۔ میسج لوپ کو ڈسپیچ میسج کو کال کرنا چاہیے۔ میسج لوپ ان پیغامات پر براہ راست عمل نہیں کرتا جسے وہ سنبھالتا ہے۔ یہ انہیں ڈسپیچ میسج پر کال کرکے بھیجتا ہے، جو پیغام کو اس ونڈو کے "ونڈو پروسیجر" میں منتقل کرتا ہے جس پر پیغام کو مخاطب کیا گیا تھا۔ ("ونڈو پروسیجر" ایک کال بیک طریقہ کار ہے، جو ونڈو کلاس کے رجسٹر ہونے پر اس سے منسلک ہو گیا تھا۔) (ایک سے زیادہ ونڈو ایک ہی ونڈو کا طریقہ کار استعمال کر سکتی ہیں۔) کوڈ براہ راست ونڈو کے طریقہ کار پر بھی پیغامات بھیج سکتا ہے۔ ان کو نان کیوڈ میسجز کہا جاتا ہے۔ ایک سخت میسج لوپ واحد آپشن نہیں ہے۔ پروگرام میں کہیں اور کوڈ بھی پیغامات کو قبول اور بھیج سکتا ہے۔ پیک میسج ایک نان بلاکنگ کال ہے جو فوری طور پر واپس آتی ہے، ایک پیغام کے ساتھ اگر کوئی انتظار کر رہا ہے، یا کوئی پیغام نہیں اگر کوئی انتظار نہیں کر رہا ہے۔ ویٹ میسج ایک دھاگے کو اس وقت تک سونے دیتا ہے جب تک کہ کوئی پیغام قطار میں نہ ہو۔ جدید گرافیکل انٹرفیس فریم ورک، جیسے ونڈوز فارمز، ونڈوز پریزنٹیشن فاؤنڈیشن، ایم ایف سی، ڈیلفی، کیو ٹی، اور دیگر کو ونڈوز میسج لوپ کو کوڈ کرنے کے لیے ایپلی کیشنز کی ضرورت نہیں ہے، کیونکہ وہ خود بخود کلیدی پریس اور ماؤس کلکس جیسے ایونٹس کو ان کے مناسب ہینڈلرز تک پہنچاتے ہیں جیسا کہ فریم ورک کے اندر بیان کیا گیا ہے۔ تاہم، ہر فریم ورک کہیں نہ کہیں میسج لوپ کو لاگو کرتا ہے، اور جب زیادہ براہ راست کنٹرول کی ضرورت ہوتی ہے تو میسج لوپ تک عام طور پر رسائی حاصل کی جا سکتی ہے یا اسے تبدیل کیا جا سکتا ہے۔ ایکس ونڈو سسٹم میں ایونٹ لوپ کے لیے ایکسلیب بھی دیکھیں بیرونی لنکس مینڈرنگ تھرو دی میز آف ایم ایف سی میسج اینڈ کمانڈ روٹنگ (ایم ایس جے، جولائی 1995) اے کیز اوڈیسی: وی سی ایل پلیٹ فارم ایس ڈی کے کے ذریعے کی اسٹروک میسج کا راستہ: میسجز اینڈ میسج کیوز پلیٹ فارم ایس ڈی کے: ونڈوز اے پی آئی: میسجز اینڈ میسج کیوز کا استعمال کرتے ہوئے میسج لوپ داخل کرنا (ایم ایس ڈی این) گیٹ میسج فنکشن پیک میسج فنکشن ایونٹس (کمپیوٹنگ) مائیکروسافٹ ایپلیکیشن پروگرامنگ انٹرفیس