PDA

View Full Version : مسئله همزمانی برای استفاده از متغیر عمومی در یک کلاس فایل



mojde_171261
شنبه 19 مرداد 1387, 13:16 عصر
با سلام,

من یه وب سایت دارم که داخل vs2005 ,به زبان c# است و یه کلاس فایل داخل فولدر appcode پروژم تعریف کردم (classname.cs)که داخل این کلاس فایل یه متغیر public از تعریف کردم و مقدار این متغیر سراسری در داخل یکی از فانکشن های یکی از صفحات وبم (pagename.aspx.cs ) پر می شود و در فانکشن های دیگر استفاده می گردد (یا حتی در صفحات دیگر ) می خوام بدونم وقتی تعداد کاربرای سایتم زیاده یا به عبارتی دو تا کاربر همزمان از این صفحه سایتم استفاده می کنن از اونجایی که باید یه شی مجزا (به ازای ورود هر کاربر) از نوع کلاس فایل ایجاد بشه آیا ممکن اطلاعات مربوط به دو کاربر تداخل پیدا کنه یا نه؟
با تشکر فراوان...

naeeme
شنبه 19 مرداد 1387, 13:27 عصر
اگر کلاستون از نوع static نیست، به ازای هر کاربر یک نسخه جدید از کلاس ساخته میشه که اطلاعاتش با اطلاعات نسخه دیگه متفاوته. پس تداخل به وجود نمیاد. اما اگه از نوع static باشه، تداخل دارین!

Himalaya
شنبه 19 مرداد 1387, 15:19 عصر
سلام ... حالا اگه تو مثلا صفحه default خودم یک متغییر داشته باشم و از اون استفاده کرده باشم دو نفر که هم زمان وارد سایت میشن ممکنه که تداخل پیش بیاد و نتیجه حداقل برای یکی از اونا غیر معمول باشه ؟؟؟؟

naeeme
یک شنبه 20 مرداد 1387, 14:15 عصر
صفحات هر کدومشون برای هر کاربر، یک نسخه مستقل از دیگری هستند. پس تداخل برای صفحات نداریم. در واقع میشه این طور گفت که برای هر کاربر یک Session به وجود میاد که در اون تمامی فعالیت های کاربر اتفاق می افته اما اگر شما از یک کلاس یا فیلد استاتیک استفاده کنین، به ازای هر Application یک نسخه داریم پس برای تمامی Sessionها همون یک نسخه استفاده میشه و تداخل رو داریم!
----
خودم یه ذره گیج شدم، شما که نشدین!! ;)