سبد (0)

اکتیویتی CancellationScope

آموزش WCF -اکتیویتی CancellationScope

همان طور که می دانید، اجرای اکتیویتی Parallel پایان نمی یاد مگر اینکه تمام شاخه های آن بصورت کامل اجرا شوند. بعضی مواقع نیاز داریم که اگر اجرای یکی از شاخه های اکتیویتی Parallel تکمیل شد، اجرای بقیه ی شاخه ها لغو شده و از اکتیویتی Parallel خارج شود.

برای انجام این کار می توانیم از اکتیویتی CancellationScope استفاده کنیم. در این قسمت از آموزش WCF قصد داریم سیستم گردش کاری را طراحی کنیم که در آن می توان یک محصول را به دو دلال مختلف سفارش داد و دلالی که عملیات حمل و نقل را زودتر از دیگری انجام دهد، برنده خواهد شد.

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

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

  1. ایجاد یک پروژه از نوع Workflow Console Application
  2. ایجاد و طراحی Workflow
  3. اجرای Workflow

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

در پنل Solution Explorer روی Solution Chapter03 راست کلیک کرده و از گزینه ADD زیر منوی New Project را انتخاب نمایید. سپس در پنجره Add New Project گزینه workflow را انتخاب کرده و سپس از سمت راست پنجره گزینه Workflow Console Application را انتخاب نمایید. حالا قسمت Name را با مقدار UseCancellationScope تنظیم نمایید و نهایتاً روی دکمه OK کلیک کنید.  


ایجاد و طراحی Workflow

فایل Service1.xaml که بصورت اتوماتیک توسط Visual Studio ساخته شده است را باز کنید و کارهای زیر را انجام دهید:

  1. از پنل Toolbox، اکتیویتی Parallel را بداخل صفحه بکشید و خصوصیت CompletionCondition آنرا با True تنظیم نمایید.
  2. از پنل Toolbox، اکتیویتی CancellationScope را به داخل Parallel بکشید.
  3. مجدداً یک اکتیویتی CancellationScope دیگر داخل Parallel قرار دهید.
  4. قسمت Body اکتیویتی CancellationScope اول را مطابق زیر طراحی کنید. (فیلد Text اکتویتی WriteLine اول با مقدار "Dealer1: Your Product has been shipped" تنظیم شده است)
  5. قسمت Body اکتیویتی CancellationScope دوم را مطابق زیر طراحی کنید. (فیلد Text اکتویتی WriteLine اول با مقدار "Dealer2: Your Product has been shipped" تنظیم شده است)
  6. ...


اجرای Workflow

پروژه UseCancellationScope را بعنوان پروژه StartUp تنظیم نمایید و در ادامه برای اجرای Workflow دکمه های میانبر Ctrl+F5 را فشار دهید. همان طور که می بینید، دلال دوم (Dealer2) توانست در زمانی کمتر یعنی 5 ثانیه، عملیات حمل را انجام دهد:

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه