با سلام!
کلمه ی کلیدی volatile معنای متفاوتی در زبان های برنامه نویسی مختلف داره که برای درک این تفاوت ها می تونید به این لینک مراجعه کنید. ولی به کار گیری این کلمه ی کلیدی به هنگام تعریف یک متغیر در سی شارپ به این معناست که مقدار این متغیر می تونه توسط Thread های مختلف تغییر کنه.
وقتی ما از volatile در یه متغیر استفاده نکنیم و مقدار این متغیر توسط یه پردازش خارجی (مثل یه ریسمان مجزا) تغییر کنه کامپایلر متوجه اون نمیشه. چون به دلیل عمل Optimizing مقدار متغیر چک نمیشه. ولی وقتی از volatile استفاده کنیم عمل Optimizing روی متغیر صورت نمی گیره و مقدا راون مستقیما" از توی حافظه ی اصلی خونده میشه.
برای اطلاعات بیش تر:
http://www.eca.ir/forum2/index.php?topic=35819.0
http://aliaghdam.com/blog/volatile-keyword-in-csharp
http://barnamenevis.org/archive/index.php/t-340631.html
موفق باشید
آرمین
Bookmarks