次の方法で共有


VariableDispenser.Reset メソッド

GetVariables への呼び出しが失敗した場合に、読み取り専用ロック一覧および読み取り/書き込みロック一覧をクリアします。

名前空間:  Microsoft.SqlServer.Dts.Runtime
アセンブリ:  Microsoft.SqlServer.ManagedDTS (Microsoft.SqlServer.ManagedDTS.dll)

構文

'宣言
Public Sub Reset
'使用
Dim instance As VariableDispenser

instance.Reset()
public void Reset()
public:
void Reset()
member Reset : unit -> unit
public function Reset()

説明

このメソッドを使用すると、GetVariables の呼び出しが失敗した後で読み取り専用ロック一覧と読み取り/書き込みロック一覧をクリアできます。 GetVariables への呼び出しが失敗した場合、ロックの一覧はクリアされないため、GetVariables を再度呼び出すと同じ変数に対するロックが試みられます。 同じ変数のロックを再試行する場合は、最初に Reset を呼び出さないで GetVariables を再度呼び出します。 また、このメソッドを使用し、すべての要求された変数が利用可能になってから一度にロックできるようになるまで操作を破棄することで、一覧を解放することを選択できます。

また、GetVariables からの失敗を受信し、次に、完全に異なる関連付けられていない変数のセットをロックする場合に、この Reset メソッドが使用されます。 Reset を呼び出してロックの一覧をクリアしてから、LockForRead メソッド、LockForWrite メソッド、LockOneForRead メソッド、および LockOneForWrite メソッドを使用してロックの一覧の内容を指定します。

使用例

次のコード例では、変数のコレクションをロックした後、ロックを解除する前にその変数コレクションがロックされているかどうかを確認します。 ロックが失敗した場合は、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

関連項目

参照

VariableDispenser クラス

Microsoft.SqlServer.Dts.Runtime 名前空間