0
내 program.cs
에 '워크 플로주기주기 이벤트'가있는 경우.워크 플로 (WF)주기주기 이벤트
WaitOne()
이 도착할 신호를 기다리는 것을 이해할 수 없습니까?
Completed
이 가장 높은 우선 순위를 갖거나 idle
이 가장 높은 우선 순위를 갖거나 어떤 신호가 도착하더라도 수신됩니까?
app.Run();
syncEvent.WaitOne();
app.PersistableIdle = delegate(WorkflowApplicationIdleEventArgs e)
{
return PersistableIdleAction.Unload;
};
app.Unloaded = delegate(WorkflowApplicationEventArgs e)
{
Console.WriteLine("Workflow {0} Unloaded.", e.InstanceId);
syncEvent.Set();
};
app.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
{
if (e.CompletionState == ActivityInstanceState.Faulted)
{
Console.WriteLine("Workflow {0} Terminated.", e.InstanceId);
Console.WriteLine("Exception: {0}\n{1}",
e.TerminationException.GetType().FullName,
e.TerminationException.Message);
}
else if (e.CompletionState == ActivityInstanceState.Canceled)
{
Console.WriteLine("Workflow {0} Canceled.", e.InstanceId);
}
else
{
Console.WriteLine("Workflow {0} Completed.", e.InstanceId);
}
};
app.Aborted = delegate(WorkflowApplicationAbortedEventArgs e)
{
Console.WriteLine("Workflow {0} Aborted.", e.InstanceId);
Console.WriteLine("Exception: {0}\n{1}",
e.Reason.GetType().FullName,
e.Reason.Message);
};
app.Idle = delegate(WorkflowApplicationIdleEventArgs e)
{
Console.WriteLine("Workflow {0} Idle.", e.InstanceId);
};
app.OnUnhandledException = delegate(WorkflowApplicationUnhandledExceptionEventArgs e)
{
Console.WriteLine("OnUnhandledException in Workflow {0}\n{1}",
e.InstanceId, e.UnhandledException.Message);
Console.WriteLine("ExceptionSource: {0} - {1}",
e.ExceptionSource.DisplayName, e.ExceptionSourceInstanceId);
return UnhandledExceptionAction.Terminate;
};
syncEvent.Set() -이 사실을 알리기 위해 하나 이상의 대기중인 스레드가 진행될 수 있도록 신호 상태로 이벤트 상태를 설정합니다. 그것이 어떻게 계속 될 것입니까? – immirza
메인 스레드가 syncEvent.WaitOne()을 호출하면 다른 스레드가 syncEvent.Set()을 호출하여 메인 스레드가 계속 진행될 때까지 대기합니다. –