WorkflowInstance.EnqueueItem 메서드

정의

지정된 워크플로 큐에 메시지를 동기적으로 게시합니다.

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 하고 개체와 개체workItemIPendingWorkEnqueueItem 전달할 수 있습니다. 이러한 알림을 원하지 않는 경우 NothingpendingWork 대한 null 참조(Visual Basic workItem)를 전달할 수 있습니다.

상태 컴퓨터 워크플로에서 이 메서드를 사용하는 경우 "큐 '{0}'가 사용하도록 설정되지 않았습니다."라는 메시지와 함께 예외가 발생할 수 있습니다. 이 문제는 상태 컴퓨터의 현재 상태가 특정 이벤트를 처리하는 방법을 모를 때 발생합니다. 예를 들어 현재 상태가 아닌 일부 상태에 큐 ''EventDrivenActivity로 표시되는 해당 상태가 포함된 HandleExternalEventActivity{0} 경우입니다.

메모

메시지를 보낸 순서대로 워크플로 인스턴스에서 수신하도록 보장되지 않습니다. 예를 들어 기존 큐(큐 A)에서 메시지를 수신하면 워크플로에서 다른 큐(큐 B)를 만든 다음 첫 번째 메시지 후에 전송된 다른 메시지를 수신 대기하는 경우 두 번째 메시지가 먼저 도착할 수 있으며 큐가 아직 생성되지 않아 수신되지 않을 수 있습니다. 이 문제를 방지하기 위해 두 번째 큐의 존재가 확인될 때까지(.를 사용하여 GetWorkflowQueueData) 두 번째 메시지를 보내면 안 됩니다.

적용 대상