فراخوانی هم زمان یک متد در یک برنامه
با سلام dll به زبان C++ دارم که به برنامه ای داده میشه ... این برنامه متد داخل dll را در یک زمان فراخوانی میکنه ... اگر این متد فقط یک بار صدا زده بشه دستگاه متصل به برنامه کار خود را کامل و درست انجام میدهد ...
اما در فراخوانی همزمان متد کار با ارور مواجه شده و ناتمام می ماند ...
برای فراخوانی همزمان یک متد چه نکته ای باید رعایت شود ... و دلیل اینکه تداخل پیش میاد چیه؟ و چطور حل میشه؟
با تشکر
نقل قول: فراخوانی هم زمان یک متد در یک برنامه
سلام
منظورت از
نقل قول:
فراخوانی همزمان یک متد
چیه؟ :متفکر: برنامه ات Multi thread هست؟
اگر درست فهمیده باشم و اینجور باشه که thread های مختلف همزمان بخواهند از اون dll استفاده کنند میتونی از Critical Section Objects استفاده کنی یا Mutex Objects
نقل قول: فراخوانی هم زمان یک متد در یک برنامه
نقل قول:
نوشته شده توسط
sh4mid
سلام
منظورت از چیه؟ :متفکر: برنامه ات Multi thread هست؟
اگر درست فهمیده باشم و اینجور باشه که thread های مختلف همزمان بخواهند از اون dll استفاده کنند میتونی از
Critical Section Objects استفاده کنی یا
Mutex Objects
از شرکتت در بحث ممنونم لینکی که دادی رو مطالعه می کنم ...
یک مثال میزنم که بهتر مطلب رو برسونم ...
من یک متد دارم که داده رو از برنامه میگیره پردازش میکنه و روی یک چیپ ذخیره میکنه ...
وقتی که یک چیپ دارم، مشکی وجود نداره، داده ها پردازش میشه و حاصل روی چیپ ذخیره میشه ...
اما اگر مثلا 2 تا دستگاه که چیپ داخلش هست رو به کامپوتر وصل کنم و از طریق نرم افزار متد رو برای ذخیره اطلاعات روی هر دو چیپ هم زمان فراخونی کنم این دو فراخونی با هم تداخل ایجاد میکنه و معمولا یا کل کار انجام نمیشه یا یکیش ارور میده و دیگری اوکی میشه ...
کاری که هنوز امتحان نکردم و میخوام تستش کنم اینه که برای هر فراخونی متد یک هندلی توسط ویندوز تولید میشه ... اون هندل رو نگه دارم و متد ها رو براش فراخونی کنم ... بعدش هم زمان هندل جدیدی ایجاد کنم و هر دو هندل رو تا پایان عملیات پیش ببرم...
باز دوستان نظری دارن ممنون میشم بنویسن ...