WorkflowApplication.Unload Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Persiste e descarrega uma instância de workflow.
Sobrecargas
| Name | Description |
|---|---|
| Unload(TimeSpan) |
Persiste e descarrega uma instância de fluxo de trabalho usando o intervalo de tempo especificado. |
| Unload() |
Persiste e descarrega uma instância de workflow. |
Observações
Por defeito, a operação de descarga deve ser concluída em 30 segundos ou é lançada TimeoutException .
Se a instância do fluxo de trabalho foi previamente carregada a partir da persistência, então o InstanceStore mesmo usado para carregar o fluxo de trabalho é usado para persistência. Se o fluxo de trabalho foi criado e ainda não foi mantido, então um InstanceStore deve ser configurado antes de chamar este método, caso contrário um InvalidOperationException é lançado quando este método é chamado.
Unload(TimeSpan)
Persiste e descarrega uma instância de fluxo de trabalho usando o intervalo de tempo especificado.
public:
void Unload(TimeSpan timeout);
public void Unload(TimeSpan timeout);
member this.Unload : TimeSpan -> unit
Public Sub Unload (timeout As TimeSpan)
Parâmetros
- timeout
- TimeSpan
O intervalo em que a operação de descarga deve ser concluída antes de a operação ser cancelada e a TimeoutException ser lançado.
Exemplos
Neste exemplo, o fluxo de trabalho está inativo e a aplicação anfitriã está à espera de input do utilizador. Se o utilizador optar por descarregar, Unload é chamado. Se for bem-sucedido, o fluxo de trabalho é mantido e descarregado da memória.
// single interaction with the user. The user enters a string in the console and that
// string is used to resume the ReadLine activity bookmark
static void Interact(WorkflowApplication application, AutoResetEvent resetEvent)
{
Console.WriteLine("Workflow is ready for input");
Console.WriteLine("Special commands: 'unload', 'exit'");
bool done = false;
while (!done)
{
Console.Write("> ");
string s = Console.ReadLine();
if (s.Equals("unload"))
{
try
{
// attempt to unload will fail if the workflow is idle within a NoPersistZone
application.Unload(TimeSpan.FromSeconds(5));
done = true;
}
catch (TimeoutException e)
{
Console.WriteLine(e.Message);
}
}
else if (s.Equals("exit"))
{
application.ResumeBookmark("inputBookmark", s);
done = true;
}
else
{
application.ResumeBookmark("inputBookmark", s);
}
}
resetEvent.WaitOne();
}
Observações
Se a instância do fluxo de trabalho foi previamente carregada a partir da persistência, então o InstanceStore mesmo usado para carregar o fluxo de trabalho é usado para persistência. Se o fluxo de trabalho foi criado e ainda não foi mantido, então um InstanceStore deve ser configurado antes de chamar este método, caso contrário um InvalidOperationException é lançado quando este método é chamado.
Aplica-se a
Unload()
Persiste e descarrega uma instância de workflow.
public:
void Unload();
public void Unload();
member this.Unload : unit -> unit
Public Sub Unload ()
Exemplos
Neste exemplo, o fluxo de trabalho está inativo e a aplicação anfitriã está à espera de input do utilizador. Se o utilizador optar por descarregar, Unload é chamado. Se for bem-sucedido, o fluxo de trabalho é mantido e descarregado da memória.
// single interaction with the user. The user enters a string in the console and that
// string is used to resume the ReadLine activity bookmark
static void Interact(WorkflowApplication application, AutoResetEvent resetEvent)
{
Console.WriteLine("Workflow is ready for input");
Console.WriteLine("Special commands: 'unload', 'exit'");
bool done = false;
while (!done)
{
Console.Write("> ");
string s = Console.ReadLine();
if (s.Equals("unload"))
{
try
{
// attempt to unload will fail if the workflow is idle within a NoPersistZone
application.Unload(TimeSpan.FromSeconds(5));
done = true;
}
catch (TimeoutException e)
{
Console.WriteLine(e.Message);
}
}
else if (s.Equals("exit"))
{
application.ResumeBookmark("inputBookmark", s);
done = true;
}
else
{
application.ResumeBookmark("inputBookmark", s);
}
}
resetEvent.WaitOne();
}
Observações
Por defeito, a operação de descarga deve ser concluída em 30 segundos ou é lançada TimeoutException .
Se a instância do fluxo de trabalho foi previamente carregada a partir da persistência, então o InstanceStore mesmo usado para carregar o fluxo de trabalho é usado para persistência. Se o fluxo de trabalho foi criado e ainda não foi mantido, então um InstanceStore deve ser configurado antes de chamar este método, caso contrário um InvalidOperationException é lançado quando este método é chamado.