WorkflowInstance.EnqueueItem Yöntem

Tanım

Belirtilen iş akışı kuyruğuna zaman uyumlu olarak bir ileti gönderir.

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)

Parametreler

queueName
IComparable

öğesinin WorkflowQueueadı.

item
Object

Sıralanacak nesne.

pendingWork
IPendingWork

IPendingWork Teslim edildiğinde item gönderene bildirim verilmesini sağlayan bir.

workItem
Object

Yöntemlere geçirilecek IPendingWork bir nesne.

Özel durumlar

queueName null başvurudur (Visual Basic Nothing).

İş akışı çalışma zamanı altyapısı çalışmıyor.

-veya-

tarafından WorkflowQueue belirtilen queueName yok.

-veya-

tarafından WorkflowQueue belirtilen queueName etkin değil.

Açıklamalar

öğesini item belirtilen WorkflowQueueöğesine gönderir. İleti teslim edildiğinde bildirim almak istiyorsanız, hizmetinizde uygulama IPendingWork yapabilir ve öğesine bir workItem ve nesnesi IPendingWorkEnqueueItemgeçirebilirsiniz. Böyle bir bildirim istemiyorsanız, pendingWork ve workItem için null başvuru (Visual Basic Nothing) geçirebilirsiniz.

Bu yöntemi durum makinesi iş akışıyla kullanırken , "'' kuyruğu{0} etkin değil" iletisiyle bir özel durum alabilirsiniz. Durum makinesinin geçerli durumu belirli bir olayın nasıl işleneceğini bilmediğinde bu durum ortaya çıkar. Örneğin, geçerli durumdan başka bir durum ''{0} kuyruğu tarafından temsil edilen öğesini içeren bir durum içerdiğinde.EventDrivenActivityHandleExternalEventActivity

Note

İletilerin iş akışı örneği tarafından gönderilme sırasına göre alınması garanti değildir. Örneğin, var olan bir kuyrukta (Kuyruk A) bir iletinin alınması, bir iş akışının başka bir kuyruk (Kuyruk B) oluşturmasına neden oluyorsa ve bu da ilk iletiden sonra gönderilen başka bir iletiyi dinliyorsa, ikinci iletinin önce gelmesi ve kuyruğunun henüz oluşturulmaması nedeniyle alınmaması mümkündür. Bu sorunu önlemek için ikinci kuyruğun varlığı doğrulanana kadar (kullanılarak GetWorkflowQueueData) ikinci ileti gönderilmemelidir.

Şunlara uygulanır