בחלונות מייקרוסופט ידועים בהמצאת הגלגל
מחדש... אבל תסתכל על זה ככה: אתה מייצר כמה eventים מסוגים שונים ורוצה לחכות לאחד מהם שיקרה. אתה משתמש ב WaitForMultipleObjects. עקרונית, יש לך שם מיוטקס בפנים (כנראה אחד).
אם היית צריך לעשות כמה נעילות ולהמתין לאחת מהן שתשתחרר, היית צריך לממש תור אירועים ומיוטקס עליו, ולבדוק את התור כל הזמן לאירועים אם יש שם משהו. זה בדיוק מה שWaitForMultipleObjects עושה עבורך, כשבתור יושבים eventים שונים. הpayload זה סוג האירוע (במקרה של event אבסטרקטי, אתה יכול לעשות payload שונה לכל אירוע וכד').
במקרה של מיוטקס אין לך אפשרות כזאת, אתה רק יודע שהנעילה שוחררה.