ScriptTask.SuspendRequired Propriedade
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.
Obtém ou define um booliano que indica se uma tarefa deve suspender a execução quando a tarefa encontra um ponto de interrupção. Esse valor é definido pelo mecanismo de tempo de execução para tarefas e contêineres quando um ponto de interrupção é encontrado.
public:
property bool SuspendRequired { bool get(); void set(bool value); };
public bool SuspendRequired { get; set; }
member this.SuspendRequired : bool with get, set
Public Property SuspendRequired As Boolean
Valor da propriedade
true se a tarefa suspender a execução quando encontrar um ponto de interrupção; caso contrário, false.
Implementações
Exemplos
O exemplo de código a seguir mostra como substituir a SuspendRequired propriedade por uma tarefa personalizada.
public bool SuspendRequired
{
get
{
// m_suspendRequired is a Private integer declared in the custom task.
return m_suspendRequired != 0;
}
set
{
// This lock is also taken by Suspend(). Because it is possible for the package to be
// suspended and resumed in quick succession, this property "set" might happen
// before the actual Suspend() call. Without the lock, the Suspend() might reset
// the canExecute event after we set it to abort the suspension.
lock (this)
{
Interlocked.Exchange(ref m_suspendRequired, value ? 1 : 0);
if (!value)
ResumeExecution();
}
}
Public ReadOnly Property SuspendRequired() As Boolean
Get
' m_suspendRequired is a Private integer declared in the custom task.
Return m_suspendRequired <> 0
End Get
Public WriteOnly Property SuspendRequired() As Boolean
Set (ByVal Value As Boolean)
' This lock is also taken by Suspend(). Because it is possible for the package to be
' suspended and resumed in quick succession, this property "put" might happen
' before the actual Suspend() call. Without the lock, the Suspend() might reset
' the canExecute event after we set it to abort the suspension.
lock (Me)
{
Interlocked.Exchange(m_suspendRequired, value ? 1 : 0)
If Not value Then
ResumeExecution()
End If
}
End Set
End Property
Comentários
Essa propriedade não está definida no código. A propriedade é definida pelo runtime para tarefas e contêineres quando um ponto de interrupção é encontrado.
No entanto, se você escrever uma tarefa personalizada multithread que expõe pontos de interrupção, deverá fornecer código para esse método, que é herdado da IDTSSuspend classe para objetos multithread. Se sua tarefa for um único thread, o que significa que a implementação da Execute sua tarefa personalizada não iniciará novos threads, você não precisará implementar essa interface. Para obter mais informações sobre como escrever tarefas personalizadas, consulte Desenvolvendo uma tarefa personalizada.