Condividi tramite


PipelineComponent.GetDependentInputs(Int32) Metodo

Definizione

Restituisce una raccolta di ID degli input in attesa di più dati e che pertanto bloccano 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

ID di un input bloccato mentre altri input sono in attesa di più dati.

Restituisce

Raccolta di ID degli input in attesa di più dati e che pertanto bloccano l'input identificato dal parametro blockedInputID.

Esempio

Per un input specifico bloccato, l'implementazione seguente del GetDependentInputs metodo restituisce una raccolta di input in attesa di ricevere più dati e quindi blocca l'input specificato. Il componente identifica gli input di blocco controllando gli input diversi dall'input specificato che attualmente non dispongono di dati disponibili per l'elaborazione nei buffer già ricevuti dal componente (inputBuffers[i].CurrentRow() == null). Il metodo GetDependentInputs restituisce quindi la raccolta di input di blocco 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 si imposta il valore della Microsoft.SqlServer.Dts.Pipeline.DtsPipelineComponentAttribute.SupportsBackPressure proprietà su true in DtsPipelineComponentAttributee il componente flusso di dati personalizzato supporta più di due input, è necessario specificare anche un'implementazione per il GetDependentInputs metodo.

Il motore del flusso di dati chiama solo il metodo GetDependentInputs quando l'utente collega più di due input al componente. Quando un componente ha solo due input e il metodo indica che un input è bloccato (canProcess = false), il IsInputReady motore del flusso di dati sa che l'altro input è in attesa di ricevere altri dati. Tuttavia, quando sono presenti più di due input e il metodo indica che un input è bloccato, il IsInputReady codice aggiuntivo nel GetDependentInputs metodo identifica gli input in attesa di ricevere più dati.

Per altre informazioni sulla gestione dell'utilizzo eccessivo della memoria se gli input di un componente del flusso di dati personalizzato producono dati a tassi non uniformi, vedere Sviluppo di componenti Flusso di dati con più input.

Si applica a