Bagikan melalui


PipelineComponent.GetDependentInputs(Int32) Metode

Definisi

Mengembalikan kumpulan ID input input yang menunggu lebih banyak data, dan dengan demikian memblokir input yang ditentukan.

public:
 virtual System::Collections::ObjectModel::Collection<int> ^ GetDependentInputs(int blockedInputID);
public virtual System.Collections.ObjectModel.Collection<int> GetDependentInputs (int blockedInputID);
abstract member GetDependentInputs : int -> System.Collections.ObjectModel.Collection<int>
override this.GetDependentInputs : int -> System.Collections.ObjectModel.Collection<int>
Public Overridable Function GetDependentInputs (blockedInputID As Integer) As Collection(Of Integer)

Parameter

blockedInputID
Int32

ID input yang diblokir saat input lain sedang menunggu lebih banyak data.

Mengembalikan

Kumpulan ID input input yang menunggu lebih banyak data, dan dengan demikian memblokir input yang diidentifikasi oleh blockedInputID parameter .

Contoh

Untuk input tertentu yang diblokir, implementasi GetDependentInputs metode berikut mengembalikan kumpulan input yang menunggu untuk menerima lebih banyak data, dan dengan demikian memblokir input yang ditentukan. Komponen mengidentifikasi input pemblokiran dengan memeriksa input selain input yang ditentukan yang saat ini tidak memiliki data yang tersedia untuk diproses di buffer yang telah diterima komponen (inputBuffers[i].CurrentRow() == null). Metode ini GetDependentInputs kemudian mengembalikan kumpulan input pemblokiran sebagai kumpulan ID input.

public override Collection<int> GetDependentInputs(int blockedInputID)  
{  
    Collection<int> currentDependencies = new Collection<int>();  
    for (int i = 0; i < ComponentMetaData.InputCollection.Count; i++)  
    {  
        if (ComponentMetaData.InputCollection[i].ID != blockedInputID  
            && inputBuffers[i].CurrentRow() == null)  
        {  
            currentDependencies.Add(ComponentMetaData.InputCollection[i].ID);  
        }  
    }  

    return currentDependencies;  
}  

Keterangan

Ketika Anda menetapkan nilai Microsoft.SqlServer.Dts.Pipeline.DtsPipelineComponentAttribute.SupportsBackPressure properti ke true di DtsPipelineComponentAttributekomponen aliran data kustom Anda mendukung lebih dari dua input, maka Anda juga harus memberikan implementasi untuk metode tersebut GetDependentInputs .

Mesin aliran data hanya memanggil GetDependentInputs metode ketika pengguna melampirkan lebih dari dua input ke komponen. Ketika komponen hanya memiliki dua input, dan IsInputReady metode menunjukkan bahwa satu input diblokir (canProcess = false), mesin aliran data tahu bahwa input lain menunggu untuk menerima lebih banyak data. Namun, ketika ada lebih dari dua input, dan IsInputReady metode menunjukkan bahwa satu input diblokir, kode tambahan dalam GetDependentInputs metode mengidentifikasi input yang menunggu untuk menerima lebih banyak data.

Untuk informasi selengkapnya tentang penanganan penggunaan memori yang berlebihan jika input komponen aliran data kustom menghasilkan data pada tingkat yang tidak merata, lihat Mengembangkan Komponen Aliran Data dengan Beberapa Input.

Berlaku untuk