語言

VariableDispenser.Reset 方法

定義

當呼叫 GetVariables(Variables) 失敗時,會清除唯讀清單和讀寫清單。

public:
 void Reset();
public void Reset();
member this.Reset : unit -> unit
Public Sub Reset ()

範例

以下程式碼範例鎖定一組變數,並在解鎖變數前判斷該集合是否被鎖定。 如果鎖失效,則 Reset 會被呼叫。

using System;  
using System.Collections.Generic;  
using System.Text;  
using Microsoft.SqlServer.Dts.Runtime;  

namespace Microsoft.SqlServer.SSIS.Sample  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            Package pkg = new Package();  
            Variables vars = null;  
            VariableDispenser variableDispenser = pkg.VariableDispenser;  
            variableDispenser.LockForRead("System::PackageName");  
            variableDispenser.LockForRead("System::OfflineMode");  
            variableDispenser.GetVariables(ref vars);             
            // Determine whether the variable collection is locked.  
            Boolean isLocked = vars.Locked;  

            // Verify the value of vars.Locked. If the lock failed,  
            // call Reset.  
            if (isLocked)  
            {  
                vars.Unlock();  
            }  
            else  
            {  
                variableDispenser.Reset();  
            }  
        }  
    }  
}  
Imports System  
Imports System.Collections.Generic  
Imports System.Text  
Imports Microsoft.SqlServer.Dts.Runtime  

Namespace Microsoft.SqlServer.SSIS.Sample  
    Class Program  
        Shared  Sub Main(ByVal args() As String)  
            Dim pkg As Package =  New Package()   
            Dim vars As Variables =  Nothing   
            Dim variableDispenser As VariableDispenser =  pkg.VariableDispenser   
            variableDispenser.LockForRead("System::PackageName")  
            variableDispenser.LockForRead("System::OfflineMode")  
            variableDispenser.GetVariables( vars)  
            ' Determine whether the variable collection is locked.  
            Dim isLocked As Boolean =  vars.Locked   

            ' Verify the value of vars.Locked. If the lock failed,  
            ' call Reset.  
            If isLocked = True Then  
                vars.Unlock()  
            Else   
                variableDispenser.Reset()  
            End If  
        End Sub  
    End Class  
End Namespace  

備註

此方法可用於在呼叫 GetVariables 失敗後清除唯讀清單及讀寫鎖清單。 若 GetVariables 呼叫失敗,鎖清單未被清除,因此若再次呼叫 GetVariables ,仍會嘗試鎖定相同的變數。 如果你想重新嘗試鎖定相同的變數,請 GetVariables 先不要先呼叫 Reset 一次。 或者,你可以選擇使用此方法釋放清單,並放棄操作,直到所有必要變數都可用且能一次鎖定。

此外, Reset 當你收到 GetVariables 失敗通知,想鎖定完全不同且無關的變數集合時,也會使用此方法。 你會呼叫Reset清除鎖清單,然後用 LockForRead、 LockForWrite、 LockOneForReadLockOneForWrite 和 方法重新填充鎖清單。

適用於