2009-09-06 35 views

Trả lời

6

cho workflow 4,0

Bạn có thể lấy Bookmarks từ WorkflowInstance

IEnumerable<BookmarkInfo> bookMarks = workflowInstance.GetAllBookmarks(); 

bookmark Chỉ hoạt động, đó là dấu trang đang thực sự chờ đợi một cái gì đó sẽ được liệt kê. Trong một luồng công việc tuần tự không có các hoạt động song song sẽ cho bạn biết một hoạt động đang đợi. Nhưng trong nhiều trường hợp, sẽ có nhiều hơn một dấu trang chờ đợi đầu vào. Bạn không thể biết cái nào gây ra trạng thái thần tượng.

Bạn có thể nhận thêm thông tin bằng cách gắn một thứ gì đó vào sự kiện WorkflowInstance.OnIdle. Nó không phải là một sự kiện .NET thực sự, nhưng nó hoàn thành cùng một điều. Điều đó sẽ không cho bạn biết chính xác lý do tại sao bạn nhấn vào trạng thái nhàn rỗi, nhưng hy vọng biết thời gian sẽ cho bạn biết thêm.

cho workflow 3,0

Tôi không chắc chắn điều này sẽ giúp đỡ, nhưng kể từ khi bạn có một WorkflowInstance bạn có thể yêu cầu nó cho một bộ sưu tập của các đối tượng bằng cách gọi WorkflowQueueInfo GetWorkflowQueueData(). Lớp WorkflowQueueInfo sẽ cho bạn biết các hoạt động nào được đăng ký vào hàng đợi và nếu hàng đợi có các mục trong đó. Hàng đợi trống với các hoạt động đã đăng ký với nó có thể cho bạn thấy những gì bạn cần. Những hoạt động đó đang chờ đợi một cái gì đó nhưng không có gì để làm. Đó phải là dấu trang bạn đang tìm kiếm.

+0

Xin lỗi, tôi quên làm rõ, đây là WF 4.0 mà tôi đang nói về ... WorkflowInstance.GetWorkflowQueueData không tồn tại trong 4.0 – Adam

+0

Ồ, xin lỗi. Tôi nên đã tìm ra bạn có nghĩa là 4,0 khi bạn nói Bookmark. Tôi sẽ chỉnh sửa câu trả lời. –

+0

Trong 4.0, GetAllBookmarks() được định nghĩa ở đâu? Tôi không thấy nó trên System.Workflow.Runtime.WorkflowInstance. – lesscode

Các vấn đề liên quan