WorkflowEventArgs Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Achtung
The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*
Stellt Daten für Workflowereignisse bereit.
public ref class WorkflowEventArgs : EventArgs
public class WorkflowEventArgs : EventArgs
[System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
public class WorkflowEventArgs : EventArgs
type WorkflowEventArgs = class
inherit EventArgs
[<System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")>]
type WorkflowEventArgs = class
inherit EventArgs
Public Class WorkflowEventArgs
Inherits EventArgs
- Vererbung
- Abgeleitet
- Attribute
Beispiele
Das folgende Codebeispiel zeigt, wie Sie ein WorkflowInstance-Objekt mithilfe der WorkflowInstance-Eigenschaft abrufen, wenn eine Ereignishandlermethode aufgerufen wird. Wenn das WorkflowIdled-Ereignis eintritt, wird die in diesem Beispiel definierte OnWorkflowIdled
-Methode aufgerufen. Sie bestimmt, welcher Workflow mithilfe der WorkflowInstance-Eigenschaft in den Leerlauf versetzt wird, und ruft anschließend eine Auflistung mit in der Warteschlange befindlichen Elementen für den Workflow ab, indem die GetWorkflowQueueData-Methode aufgerufen wird. Der Code durchläuft die Auflistung, um zu ermitteln, welche Aktivität auf das Ereignis wartet, das den Workflow in den Leerlauf versetzt hat. Anschließend sendet er eine Ausnahme an die Workflowwarteschlange, indem er die EnqueueItem-Methode zusammen mit dem Namen des Ereigniswarteschlangenelements verwendet.
Dieses Codebeispiel ist Teil des Canceling a Workflow SDK-Beispiels in der Datei Program.cs. Weitere Informationen finden Sie unter Abbrechen eines Workflows.
static void OnWorkflowIdled(object sender, WorkflowEventArgs e)
{
WorkflowInstance workflow = e.WorkflowInstance;
Console.WriteLine("\n...waiting for 3 seconds... \n");
Thread.Sleep(3000);
// what activity is blocking the workflow
ReadOnlyCollection<WorkflowQueueInfo> wqi = workflow.GetWorkflowQueueData();
foreach (WorkflowQueueInfo q in wqi)
{
EventQueueName eq = q.QueueName as EventQueueName;
if (eq != null)
{
// get activity that is waiting for event
ReadOnlyCollection<string> blockedActivity = q.SubscribedActivityNames;
Console.WriteLine("Host: Workflow is blocked on " + blockedActivity[0]);
// this event is never going to arrive eg. employee left the company
// lets send an exception to this queue
// it will either be handled by exception handler that was modeled in workflow
// or the runtime will unwind running compensation handlers and exit the workflow
Console.WriteLine("Host: This event is not going to arrive");
Console.WriteLine("Host: Cancel workflow with unhandled exception");
workflow.EnqueueItem(q.QueueName, new Exception("ExitWorkflowException"), null, null);
}
}
}
Shared Sub OnWorkflowIdled(ByVal sender As Object, ByVal e As WorkflowEventArgs)
Dim workflow As WorkflowInstance = e.WorkflowInstance
Console.WriteLine(vbCrLf + "...waiting for 3 seconds... " + vbCrLf)
Thread.Sleep(3000)
' what activity is blocking the workflow
Dim wqi As ReadOnlyCollection(Of WorkflowQueueInfo) = workflow.GetWorkflowQueueData()
For Each q As WorkflowQueueInfo In wqi
Dim eq As EventQueueName = TryCast(q.QueueName, EventQueueName)
If eq IsNot Nothing Then
' get activity that is waiting for event
Dim blockedActivity As ReadOnlyCollection(Of String) = q.SubscribedActivityNames
Console.WriteLine("Host: Workflow is blocked on " + blockedActivity(0))
' this event is never going to arrive eg. employee left the company
' lets send an exception to this queue
' it will either be handled by exception handler that was modeled in workflow
' or the runtime will unwind running compensation handlers and exit the workflow
Console.WriteLine("Host: This event is not going to arrive")
Console.WriteLine("Host: Cancel workflow with unhandled exception")
workflow.EnqueueItem(q.QueueName, New Exception("ExitWorkflowException"), Nothing, Nothing)
End If
Next
End Sub
Hinweise
Hinweis
In diesem Material werden veraltete Typen und Namespaces erläutert. Weitere Informationen finden Sie unter Veraltete Typen in Windows Workflow Foundation 4.5.
Workflowereignisse sind einer Workflowinstanz zugeordnet. WorkflowEventArgs enthält die WorkflowInstance, die dem Workflowereignis zugeordnet ist. WorkflowEventArgs oder ein Objekt, das von der WorkflowEventArgs-Klasse abgeleitet ist, stellt die Daten für alle Workflowereignisse in der WorkflowRuntime-Klasse bereit. WorkflowEventArgs ist die Basisklasse für WorkflowCompletedEventArgs, WorkflowSuspendedEventArgs und WorkflowTerminatedEventArgs.
Eigenschaften
WorkflowInstance |
Veraltet.
Ruft die dem Workflowereignis zugeordnete Workflowinstanz ab. |
Methoden
Equals(Object) |
Veraltet.
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Veraltet.
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Veraltet.
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Veraltet.
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Veraltet.
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |