WorkflowApplication.Persist Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Persiste uma instância de fluxo de trabalho em um repositório de instâncias.
Sobrecargas
Persist() |
Persiste uma instância de fluxo de trabalho em um repositório de instâncias. |
Persist(TimeSpan) |
Persiste uma instância de fluxo de trabalho em um repositório de instâncias usando o intervalo de tempo limite especificado. |
Comentários
Se a instância de fluxo de trabalho tiver sido carregada anteriormente da persistência, o mesmo InstanceStore usado para carregar o fluxo de trabalho será usado para persistência. Se o fluxo de trabalho foi criado e ainda não foi persistente, um InstanceStore deve ser configurado antes de chamar esse método ou então um InvalidOperationException é gerado quando esse método é chamado.
Persist()
Persiste uma instância de fluxo de trabalho em um repositório de instâncias.
public:
void Persist();
public void Persist ();
member this.Persist : unit -> unit
Public Sub Persist ()
Exemplos
O exemplo a seguir chama Persist para persistir uma instância de fluxo de trabalho antes que o fluxo de trabalho seja iniciado.
WorkflowApplication application = new WorkflowApplication(activity);
application.InstanceStore = instanceStore;
//returning IdleAction.Unload instructs the WorkflowApplication to persists application state and remove it from memory
application.PersistableIdle = (e) =>
{
return PersistableIdleAction.Unload;
};
application.Unloaded = (e) =>
{
instanceUnloaded.Set();
};
//This call is not required
//Calling persist here captures the application durably before it has been started
application.Persist();
id = application.Id;
application.Run();
instanceUnloaded.WaitOne();
Comentários
Se a operação de persistência não for concluída dentro de 30 segundos, um TimeoutException será gerado.
Se a instância de fluxo de trabalho tiver sido carregada anteriormente da persistência, o mesmo InstanceStore usado para carregar o fluxo de trabalho será usado para persistência. Se o fluxo de trabalho foi criado e ainda não foi persistente, um InstanceStore deve ser configurado antes de chamar esse método ou então um InvalidOperationException é gerado quando esse método é chamado.
Aplica-se a
Persist(TimeSpan)
Persiste uma instância de fluxo de trabalho em um repositório de instâncias usando o intervalo de tempo limite especificado.
public:
void Persist(TimeSpan timeout);
public void Persist (TimeSpan timeout);
member this.Persist : TimeSpan -> unit
Public Sub Persist (timeout As TimeSpan)
Parâmetros
- timeout
- TimeSpan
O intervalo no qual a operação de persistência deve ser concluída antes que ela seja cancelada e que uma TimeoutException seja gerada.
Exemplos
O exemplo a seguir chama Persist para persistir uma instância de fluxo de trabalho antes que o fluxo de trabalho seja iniciado.
WorkflowApplication application = new WorkflowApplication(activity);
application.InstanceStore = instanceStore;
//returning IdleAction.Unload instructs the WorkflowApplication to persists application state and remove it from memory
application.PersistableIdle = (e) =>
{
return PersistableIdleAction.Unload;
};
application.Unloaded = (e) =>
{
instanceUnloaded.Set();
};
//This call is not required
//Calling persist here captures the application durably before it has been started
application.Persist();
id = application.Id;
application.Run();
instanceUnloaded.WaitOne();
Comentários
Se a instância de fluxo de trabalho tiver sido carregada anteriormente da persistência, o mesmo InstanceStore usado para carregar o fluxo de trabalho será usado para persistência. Se o fluxo de trabalho foi criado e ainda não foi persistente, um InstanceStore deve ser configurado antes de chamar esse método ou então um InvalidOperationException é gerado quando esse método é chamado.