2011-08-23 72 views
0

我使用WF,我已經寫了下面的代碼書籤:如何使用書籤代碼停止工作流程?哪部分?

[RequiredArgument] 
    public OutArgument<int> out_ar { get; set; } 

    protected override void Execute(NativeActivityContext context) 
    { 

     context.CreateBookmark("samename", new BookmarkCallback(OnBookmarkCallback)); 

    protected override bool CanInduceIdle 
    { 
     get 
     { 
      return true; 
     } 
    } 
    void OnBookmarkCallback(NativeActivityContext context, Bookmark bookmark, object val) 
    { 
     out_ar.Set(context, (int)val); 
     int no = (int)val; 

    } 
} 

}

我的問題是,當我可以TAST瓦爾說法,如果它不是爲我想要,我想停止工作流程,直到正確的價值來,然後我可以恢復工作流程? 謝謝。

回答

0

如果您致電context.CreateBookmark(),請添加BookmarkOptions.MultipleResume選項,並在OnBookmarkCallback()調用context.RemoveBookmark(bookmark),如果您對所收到的值感到滿意。

+0

if if if(val == true)context.RemoveBookmark(bookmark);所以它不會刪除書籤,它仍然idel?謝謝 – Sofy

+0

是的,它會回到空閒狀態,直到書籤再次恢復。 – Maurice

+0

我怎樣才能恢復它?我需要它來檢查值,直到它是真實的。如果沒有辦法,我是否必須替換while循環中的if? – Sofy