MDA

VS از نسخه‌ی 2005 به بعد، یک امکانی اضافه کرده به نام Managed Debugging Asistants یا به اختصار MDA که یکی از کارهایی که می‌کنه اینه که اگر به یک Control از Thread ای غیر از Thread سازنده‌اش دست بزنید (و در حال Debug باشید)، پیغام خطا میده. این کار رو می‌کنه که حواستون باشه سوتی ندید. من خیلی به این قضیه تکیه کرده بودم و احساس می‌کردم اگر VS چیزی نگه، پس لابد Cross Thread Access ای انجام ندادم.

اخیراً در یک پروژه‌ای به یک مورد عجیب برخورد کردم. یک دکمه‌ای بود که وقتی کاربر روش کلیک می‌کرد درست کار می‌کرد، اما وقتی از توی Timer صدا می‍شد اصلاً هیچ عکس العملی نشون نمی‌داد. آخرین حدسی که زدم این بود که چون از UI Thread نیست این اتفاق می‌افته و همین‌طور هم بود. با اینکه VS چیزی نمی‌گفت.