PipelineComponent.GetDependentInputs(Int32) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce una raccolta degli ID degli input degli input che aspettano altri dati, bloccando quindi l'input specificato.
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)
Parametri
- blockedInputID
- Int32
L'ID di un input bloccato mentre altri input aspettano altri dati.
Valori restituiti
Una raccolta degli ID degli input degli input che attendono altri dati e quindi bloccano l'input identificato dal blockedInputID parametro.
Esempio
Per un input specifico bloccato, la successiva implementazione del GetDependentInputs metodo restituisce una raccolta degli input che aspettano di ricevere altri dati, bloccando quindi l'input specificato. Il componente identifica gli ingressi bloccanti controllando la presenza di ingressi diversi da quello specificato che attualmente non dispongono di dati disponibili da elaborare nei buffer che il componente ha già ricevuto (inputBuffers[i].CurrentRow() == null). Il GetDependentInputs metodo restituisce quindi la collezione di input bloccanti come una raccolta di ID di 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;
}
Commenti
Quando imposti il valore della Microsoft.SqlServer.Dts.Pipeline.DtsPipelineComponentAttribute.SupportsBackPressure proprietà a trueDtsPipelineComponentAttribute, e il tuo componente custom data flow supporta più di due input, allora devi fornire anche un'implementazione per il GetDependentInputs metodo.
Il motore di flusso dati chiama il GetDependentInputs metodo solo quando l'utente collega più di due ingressi al componente. Quando un componente ha solo due ingressi, e il IsInputReady metodo indica che uno è bloccato (canProcess = false), il motore di flusso dati sa che l'altro ingresso è in attesa di ricevere altri dati. Tuttavia, quando ci sono più di due input e il IsInputReady metodo indica che un input è bloccato, il codice extra nel GetDependentInputs metodo identifica gli input che attendono di ricevere altri dati.
Per maggiori informazioni sulla gestione dell'uso eccessivo di memoria se gli ingressi di un componente custom data flow producono dati a velocità disomogene, vedi Developing Flusso di dati Components with Multiple Inputs.