WorkflowInstance.EnqueueItem 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 워크플로 큐에 메시지를 동기적으로 게시합니다.
public:
void EnqueueItem(IComparable ^ queueName, System::Object ^ item, System::Workflow::Runtime::IPendingWork ^ pendingWork, System::Object ^ workItem);
public void EnqueueItem(IComparable queueName, object item, System.Workflow.Runtime.IPendingWork pendingWork, object workItem);
member this.EnqueueItem : IComparable * obj * System.Workflow.Runtime.IPendingWork * obj -> unit
Public Sub EnqueueItem (queueName As IComparable, item As Object, pendingWork As IPendingWork, workItem As Object)
매개 변수
- queueName
- IComparable
WorkflowQueue의 이름입니다.
- item
- Object
큐에 추가할 개체입니다.
- pendingWork
- IPendingWork
IPendingWork 전송될 때 item 보낸 사람에게 알림을 보낼 수 있는 값입니다.
- workItem
- Object
메서드에 전달할 개체입니다 IPendingWork .
예외
queueName null 참조입니다(Visual Basic Nothing).
워크플로 런타임 엔진이 실행되고 있지 않습니다.
-또는-
지정한 WorkflowQueue 항목이 queueName 없습니다.
-또는-
WorkflowQueue 지정한 queueName 값을 사용할 수 없습니다.
설명
지정된 .으로 보냅니다 itemWorkflowQueue. 메시지가 배달될 때 알림을 받도록 하려면 서비스에서 구현 IPendingWork 하고 개체와 개체workItem를 IPendingWorkEnqueueItem 전달할 수 있습니다. 이러한 알림을 원하지 않는 경우 Nothing 및 pendingWork 대한 null 참조(Visual Basic workItem)를 전달할 수 있습니다.
상태 컴퓨터 워크플로에서 이 메서드를 사용하는 경우 "큐 '{0}'가 사용하도록 설정되지 않았습니다."라는 메시지와 함께 예외가 발생할 수 있습니다. 이 문제는 상태 컴퓨터의 현재 상태가 특정 이벤트를 처리하는 방법을 모를 때 발생합니다. 예를 들어 현재 상태가 아닌 일부 상태에 큐 ''EventDrivenActivity로 표시되는 해당 상태가 포함된 HandleExternalEventActivity{0} 경우입니다.
메모
메시지를 보낸 순서대로 워크플로 인스턴스에서 수신하도록 보장되지 않습니다. 예를 들어 기존 큐(큐 A)에서 메시지를 수신하면 워크플로에서 다른 큐(큐 B)를 만든 다음 첫 번째 메시지 후에 전송된 다른 메시지를 수신 대기하는 경우 두 번째 메시지가 먼저 도착할 수 있으며 큐가 아직 생성되지 않아 수신되지 않을 수 있습니다. 이 문제를 방지하기 위해 두 번째 큐의 존재가 확인될 때까지(.를 사용하여 GetWorkflowQueueData) 두 번째 메시지를 보내면 안 됩니다.