PDA

View Full Version : جايگاه Static در asp.net



Ehsan-MT
شنبه 17 مهر 1389, 22:04 عصر
با سلام

درخواست من بر ميگرده به درك نادرستم از static در asp.net كه يك فيلد، متغير، تابع يا حتي كلاس از نوع استاتيك چگونه وضعيتي در سمت سرور داره؟ بعبارت ديگه آيا thread safe هست؟
در تعداد درخواست هاي بالا كه امكان همزماني درخواستهاي مشابه بروي يك كلاس استاتيك يا متغيرها و توابع از اين نوع زياد هست چه اتفاقي رخ مي دهد. آيا براي session هاي مختلف مقادير يكساني وجود دارد؟
و تشابه و تفاوت استاتيك با singleton pattern در چيست؟

در چه مواردي و كجا ها امكان استفاده از اين دو وجود دارد.

با تشكر پيشاپيش بابت پاسخ هايتان.

vzsoft
یک شنبه 18 مهر 1389, 16:49 عصر
سلام

همنجور که از نامش پیداست static یک نوع متغیر عمومی است و تمام کاربران به اون دسترسی دارن به همین علت thread safe نیست و باید از Lock استفاده کنید تا تداخلی به وجود نیاد

به عبارت ساده تر شما وقتی یک متغییر از نوع Static درست می کنیدومقداری به اون میدید اون مقدار برای همه کاربران قابل مشاهده است
در لینک زیر مثال کاملی وجود دارد


http://www.yoda.arachsys.com/csharp/singleton.html


موفق باشید

Ehsan-MT
یک شنبه 18 مهر 1389, 17:45 عصر
پس با اين حساب نبايد از متغير ها و كلاس هاي استاتيك كه مقادير را در خود نگهداري مي كنند در asp.net استفاده كرد؟
در مورد object هاي ado.net يا datatable ها چطور باز هم امكان استفاده بصورت استاتيك وجود ندارد؟

vzsoft
یک شنبه 18 مهر 1389, 18:06 عصر
1-بستگی به برنامتون داره اگه استفاده عموم به یک کلاس و یا متغیر ثابت زیاد باشه باید از نوع استاتیک تعریفش کرد
2-شما هر نوع object رو که بخواین می تونین به صورت استاتیک تعریف کنید محدودیتی نداره