تور لحظه آخری
امروز : چهارشنبه ، 28 شهریور 1403    احادیث و روایات:  پیامبر اکرم (ص):كسى كه در دنيا به امانتى خيانت كند و آن را به صاحبش برنگرداند و آنگاه بميرد بر دين...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

تریدینگ ویو

کاشت ابرو

لمینت دندان

لیست قیمت گوشی شیائومی

صرافی ارکی چنج

صرافی rkchange

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

طراحی کاتالوگ فوری

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

وکیل کرج

خرید تیشرت مردانه

وام لوازم خانگی

نتایج انتخابات ریاست جمهوری

خرید ابزار دقیق

خرید ریبون

موسسه خیریه

خرید سی پی کالاف

واردات از چین

دستگاه تصفیه آب صنعتی

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

خرید نهال سیب سبز

قیمت پنجره دوجداره

بازسازی ساختمان

طراحی سایت تهران سایت

دیوار سبز

irspeedy

درج اگهی ویژه

ماشین سازان

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

شات آف ولو

تله بخار

شیر برقی گاز

شیر برقی گاز

خرید کتاب رمان انگلیسی

زانوبند زاپیامکس

بهترین کف کاذب چوبی

پاد یکبار مصرف

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

بلیط هواپیما

 






آمار وبسایت

 تعداد کل بازدیدها : 1816515911




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

ايجاد يک Object مشترک بين Application Domain


واضح آرشیو وب فارسی:سایت ریسک: mespio15-07-2008, 01:10 AMبا سلام.مي خواستم يک داده ي اشتراکي بين دو AppDomain متفاوت ايجاد کنم. مثل Mutex, Semapher, و يا EventwaitHandle . کمي تو کلاس MarshalByRefObject کيج شدم. ممنون مي شم بتونيد کمکم کنيد. با تشکر someone15-07-2008, 05:22 PMسلام در Net. کلاسی به نام Mutexوجود داره که به راحتی می تونین از اون برای به اشتراک گذاشتن یک Resource بین دو Thread استفاده کنید. در ساده ترین حالت کافی Resource مورد نظرتون رو بین دو متود WaitOne و ReleaseMutex قرار بدین/ و همین طور در مورد Semaphore . از Semaphore برای محدود کردن تعداد دسترسی ها به یک Resource مشخص هست. مثلا به طور همزمان تنها 3 Thread میتونین به یک Object دسترسی داشته باشن و Thraed چهارم باید در انتظار بمونه. برای استفاده از اون کافی از دو متود WaitOne و Release استفاده کنین. در مورد این کلاس ها نمونه ها و مثال های زیادی وجود داره. اگه نیاز به توضیح بیشتر داشت خبر بدین. موفق باشین. mespio17-07-2008, 02:48 AMشناخت کامل و جامع روی Mutex, semaphore ,EventWaitHandle دارم. اما سوال من راجب دسترسی به Typed define هایی که از MarshalByRefObject به ارث می بره تا بشه بین AppDomain ها آن تایپ رو مشترکا به ارث برد. برای مثال فرض کنید من می خواهم مسئله تولید کننده- مصرف کننده رو با Monitor تو دو AppDomain متفاوت و به صورت همزمان با هم داشته باشم. حال سوال اینجاست که چطوری میشه آن Object که واسه Lock کردن از طریق Monitor انجام میشه بین تو تا AppDomain استفاده کرد. این مسئله رو با Mutex و Semaphore و EventWaitHandle حل کردم. اما با Monitor روی آبجکت واسه Lock کردن هنوز نتونستم! باز هم ممنون از لطفتون که اگه تونستید راهنمایی کنید. ممنون someone17-07-2008, 10:38 AMدوباره سلام همونطور که خودتون می دونین ارتباط بین AppDomain های متفاوت از دو طریق انجام میشه 1- انتقال یک Copy از همه محدوده ی AppDomain 2-استفاده از یک Proxy برای Message Exchanging از طرف دیگه باز همونطور که شما نوشتین Type ها باید از کلاس MarshalByRefobject به ارث برده بشن. که دلیل استفاده از MarshalByRefobject کاملا روشنه. در اینجا سوالی برای من پیش اومده. در مورد مساله ی procuder-costomer شما هر کدوم از بخش ها رو در یک AppDomain ایجاد کردین؟ میتونم نحوه پیاده سازی شما رو ببینم؟ ضمنا تعریفتون از Application Domain چیه؟ اما اگه سوالتون در مورد استفاده از Monitor در مساله ی گفته شده است به کد زیر مراجعه کنین:http://www.yoda.arachsys.com/csharp/threads/deadlocks.shtml _H2_17-07-2008, 07:19 PMسلام با اجازه کاربر someone... این چیزی که شما نیاز دارید، ارتباطات DDE است که در VB 6 پشتیبانی میشد ولی مایکروسافت آنرا در دات نت حذف کرد، چون چندان منطقی نمیدانست! (گرچه هنوز خود explorer مایکروسافت در جاهایی از ان استفاده میکند) - اگر برنامه شما در یک PC واحد اجرا میشود که به جای ایجاد چند برنامه برای چند پنجره یک برنامه واحد MDI بسازید که چند Child داشته باشد. - اگر هم برنامه در چند PC متفاوت باید به هم وصل شوند که باید از سوکت استفاده کنید. راه اصولی اینها هستند. ولی اگر بر انجام این عمل پافشاری دارید، چند راه دارید. 1- اگر یکی از برنامه ها دیگری را راه اندازی میکند یا این که یکی از برنامه ها در هر لحظه فقط یک نسخه اش میتواند در RAM باشد، میتوانید شی ای در حافظه قرار دهید و آدرس آن مکان را با خط Command به برنامه دوم پاس دهید تا به آن نقطه رجوع کند. 2- برای ارسال اطلاعات میتوان از کلاسس System.Diagnostics.Process استفاده کرد ولی من فقط روی نوع Consol میدانم که جواب میدهد و بعید میدانم برای برنامه های عادی جواب دهد. 3- هنوز هم میتوانید از برنامه نویسی سطح سوکت و یا Net Remoting استفاده کنید. 4- مطمئن نیستم ولی فک کنم API های DDE در user32 باشد که اگر به مرجع msdn مراجعه کنید، شاید هنوز بتوانید از این تکنولوژی، قبل از انقراض استفاده کنید. اگر توضیح دهید برای چه به همچین کدی نیاز دارید و چه میخواهید بکنید، میشود راه حل های جدید و اصولی بهتری را معرفی کرد. موفق باشید. mespio19-07-2008, 10:59 AMسلام بر دو دوست گرامی کاربر Someone من می خوام بدونم که چطوری می تونم با تبادل پیام کار کنم؟ حالا که کلاسی رو از Marshal ارث بری کردم چطوری می شه یک proxy از آن شئی در یک AppDomain دیگر استفاده کرد؟ منظورمو با یک مثال ساده بیان می کنم: "فرض کنیم دو ConsoleApplication داریم که بین این دو یک Object با استفاده از روش Message Exchanging با هم ارتباط دارند.به طوری که اگه هر کدام از آنها تغییری در Object ایجاد کند آن دیگری این تغییر را خواهد دید. حال سوال اینجاست این ارتباط بین این دو برنامه چگونه ایجاد می شود تا هر دو بتوانند تغییرات را مشاهده کنند؟ فرض کنید هر دو برنامه(منظورم ConsoleApplication است)یک ناحیه بحرانی دارند که با استفاده از Monitor و آن Object مشترک بین دو برنامه قفل می شود.پس مسلما اگر هردو برنامه با هم اجرا شوند فقط یکی از آنها می تواند وارد ناحیه بحرانی شود به شرط اینکه این ارتباط برای Object مشترک بین دو برنامه درست باشد و دیگری منتظر می ماند تا Object هز حالت قفل خارج شود" این کار را با Mutex و یا کلاس های برای کنترل در سطح سیستم عامل مثل EventWaiteHandle ها و ... انجام داده ام. فقط می خواهم با این نحوه هم انجام دهم. چطوری می شود این ارتباط رو برقرار کرد و کار کرد؟ باز هم ممنون از لطف هر دو دوست عزیز سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 376]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن