PDA

View Full Version : مسئله تولید کننده و مصرف کننده با ویژگی خاص



m.h.movahedi
دوشنبه 08 تیر 1394, 08:24 صبح
سلام
من دو تا رخداد دارم که اولی به صورت مداوم رخ می دهد (مثل تایمر) و دومی ممکن است رخ بدهد یا ندهد.
رخ داد اول یک ایندکس را تولید می کند و رخ داد دوم از این ایندکس برای بدست آوردن محلی که نتایج باید در آن قرار بگیرند استفاده می کند. من این مسئله را به صورت تولید کننده و مصرف کننده نوشته ام.
مشکلی که وجود دارد این است که رخداد دوم همیشه اتفاق نمی افتد. چطور میشه به گونه ای این مسئله را نوشت که هم زمان بندی شده باشد و هم اگر تا زمان مشخصی رخداد دوم اتفاق نیفتاد، رخداد اول قادر به تولید ایندکس جدید باشد و برنامه با مشکلی مواجه نشود؟

RmeXXXXXXXXX
دوشنبه 08 تیر 1394, 22:26 عصر
برداشت من از درخواست شما اینه که شما دو تا رخداد مجزا دارین که اولی ایندکسی را درنهایت تولید خواهد کرد که رخداد دومی از این ایندکس باید استفاده کنه.
آیا باید تمام ایندکس های تولیدی مصرف شوند یا فقط آخرین ایندکس کفایت میکند؟
بهرحال نتایج تولیدی باید ذخیره شوند (مثلاً در یک لیست) و فقط همین کار رو انجام بده و کاری به مصرف کننده نداشته باشه. بدین صورت اسقلالش حفظ و تا همیشه میتونه اجرا بمونه. در عوض کد رخداد دوم رو طوری بچینید که اگر نتیجه ای در لیست بود (آخرین مورد یا اولین مورد) رو استفاده و حذف کند. اگر نیازی به مصرف همه ایندکس ها نیست میتونید طول لیست رو کوتاه در نظر بگیرید یا اگر مطمئن هستید که همیشه قبل از رخداد دوم رخداد اول اتفاق خواهد افتاد از یک متغیر استفاده کنید.
جهت انتقال لیست یا متغیر ایندکس ها به رخداد دوم بهترین گزینه میتونه آرگومان ورودی رخداد باشد.