次の方法で共有


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 メソッド、LockOneForRead メソッド、および LockOneForWrite メソッドを使用してロックの一覧の内容を指定します。

適用対象