با سلام خدمت همکاران گرامی
همانطور که می دانید یکی از روشهای ایجاد تاخیر در وضعیتها، استفاده از توابع تاخیر و بیداری است. برای آشنایی بیشتر با این موضوع بهتر است نگاهی به محاوره اصلاح اطلاعات وضعیت بیندازیم:
همانطور که مشاهده می کنید، در ناحیه تعیین نوع تاخیر، دو گزینه به استفاده از توابع تاخیر و بیداری اختصاص دارد. در پایین محاوره هم ناحیه انتخاب تابع با خط قرمز مشخص شده است.
الگوی توابع تاخیر و بیداری
الگوی نام این توابع به صورت WorkDelayName است که بخش Name در واقع نامی است که می توانیم به دلخواه انتخاب کنیم. نکته ای که باید توجه کنید این است این الگو بطور یکسان هم برای توابع تاخیر و هم برای توابع بیداری استفاده می شود.
تابع تاخیر
در این تابع تعیین می کنیم که اجرای وظیفه بعدی به اندازه مدت زمان خاصی به تعویق بیافتد. برای مثال فرض کنید بخواهیم گردش کار در یک وضعیت خاص، در شرایط خاصی 5 دقیقه و تحت شرایط دیگری 10 دقیقه تاخیر داشته باشد. حال باید تابع تاخیر را به شکل زیر بنویسیم
خروجی (return value) تابع تاخیر
مدت تاخیر باید به شکل یک عدد اعشاری و بصورت کسری از یک روز باشد. لذا باید ابتدا مقدار تاخیر را براساس بر اساس ثانیه محاسبه و سپس بر عدد 84600 تقسیم کنیم. توضیح اینکه یک روز برابر با 84600 ثانیه است. همانطور که در تابع مشخص است، خروجی تابع تاخیر، متغیر DTime است که میزان تاخیر را به نسبت یک روز نشان می دهد.
در پست بعدی به توابع بیداری می پردازیم