PipelineComponent.GetDependentInputs(Int32) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.