اکتیویتی ParallelForEach

چاپ

استفاده ازاکتیویتی ParallelForEach در Workflow

اکتیویتی ParallelForEach در واقع یک ForEach ویژه است. تفاوت بین اکتیویتی ParallelForEach و ForEach در این است که دستورات جاگذاری شده در ParallelForEach بصورت زمانبندی شده و غیرهمزمان اجرا خواهند شد.

خود اکتیویتی ParallelForEach برای مدیریت شاخه ها به یک اکتیویتی Parallel وابسته است. اجازه دهید تا نحوه ی کار کردن با اکتیویتی ParallelForEach را با یک مثال ساده توضیح دهیم.

مراحل انجام کار

 پروژه گردش کار UsingParallelForEachActivity شامل چهار مرحله زیر است:

  1. ایجاد یک پروژه از نوع Workflow Console Application
  2. طراحی Workflow و نحوه استفاده از اکتیویتی ParallelForEach
  3. اجرای Workflow
  4. سیستم گردش کار UsingParallelForEachActivity چگونه کار می کند؟

ایجاد یک پروژه از نوع Workflow Console Application

یک پروژه جدید از نوع Workflow Console Application ایجاد کرده و آنرا UsingParallelForEachActivity نامگذاری کنید.


طراحی Workflow و نحوه استفاده از اکتیویتی Parallel

از پنل Solution Explorerr فایل Workflow1.xaml را باز کنید و Workflow را مطابق زیر طراحی نمایید:

  1. از پنل ToolBox، اکتیویتی Parallel را انتخاب کرده و به داخل صفحه طراحی گردش کار بکشید.
  2. مطابق شکل زیر از پنل Toolbox دو اکتیویتی Sequence را به داخل Parallel بکشید و آنها را مطابق زیر تنظیم نمایید:

توجه: این تمرین دقیقاً مانند تمرین مطلب قبل است (اکتیویتی Parallel) با این تفاوت که در Sequence دوم بجای ForEach از یک اکتیویتی ParallelForEach استفاده کرده ایم.


اجرای Workflow

پروژه UsingParallelForEachActivity را بعنوان پروژه StartUp تنظیم نمایید و در ادامه برای اجرای Workflow دکمه های میانبر Ctrl+F5 را فشار دهید. همان طور که مشاهده می کنید، بلافاصله بعد از چاپ رشته ی "ForEach: 1" ، سه خط بعدی بدون هیچ تأخیری چاپ می شوند و سپس خطوط بعدی با تأخیر 5 ثانیه ای چاپ می شوند:


سیستم گردش کار UsingParallelForEachActivity  چگونه کار می کند؟

با انجام این تمرین و مشاهده خروجی بالا، حتماً حدث زده اید که Delay مربوط به ParallelForEach بدون تأثیر است. در واقع این یکی از ویژگی های اکتیویتی ParallelForEach می باشد و زمانی که اجرای یکی از گام های حلقه متوقف یا Idle شود، بجای انتظار، بلافاصله اجرای گام بعدی شروع می شود.

{module خرید و دانلود فصل دوم آموزش Workflow}