ScriptTask.SuspendRequired Eigenschaft

Definition

Erhält oder setzt einen Boolean, der angibt, ob eine Aufgabe die Ausführung aussetzen soll, wenn sie auf einen Breakpoint trifft. Dieser Wert wird von der Laufzeit-Engine für Aufgaben und Container festgelegt, wenn ein Breakpoint erreicht wird.

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

Eigenschaftswert

wahr, wenn die Aufgabe die Ausführung aussetzt, wenn sie auf einen Breakpoint trifft; ansonsten falsch.

Implementiert

Beispiele

Das folgende Codebeispiel zeigt, wie man die Eigenschaft SuspendRequired für eine benutzerdefinierte Aufgabe überschreibt.

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  

Hinweise

Diese Eigenschaft ist nicht im Code festgelegt. Die Eigenschaft wird durch die Laufzeit von Aufgaben und Containern festgelegt, wenn ein Breakpoint erreicht wird.

Wenn Sie jedoch eine multithreaded benutzerdefinierte Aufgabe schreiben, die Breakpoints offenlegt, müssen Sie für diese Methode Code bereitstellen, der für multithreaded Objekte von der Klasse IDTSSuspend übernommen wird. Wenn Ihre Aufgabe singlethreaded ist, was bedeutet, dass die Implementierung von Execute in Ihrer benutzerdefinierten Aufgabe keine neuen Threads startet, müssen Sie diese Schnittstelle nicht implementieren. Weitere Informationen zum Schreiben benutzerdefinierter Aufgaben finden Sie unter Entwicklung einer benutzerdefinierten Aufgabe.

Gilt für: