Compartir a través de


PipelineComponent.GetDependentInputs(Int32) Método

Definición

Devuelve una colección de los identificadores de entrada de las entradas que están esperando recibir más datos y, por tanto, están bloqueando la entrada especificada.

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)

Parámetros

blockedInputID
Int32

El identificador de una entrada que está bloqueada mientras otras entradas están esperando recibir más datos.

Devoluciones

Colección de identificadores de entrada de las entradas que están esperando recibir más datos y, por tanto, están bloqueando la entrada identificada por el parámetro blockedInputID.

Ejemplos

Para una entrada específica bloqueada, la siguiente implementación del GetDependentInputs método devuelve una colección de las entradas que están esperando recibir más datos y, por tanto, bloquean la entrada especificada. El componente identifica las entradas de bloqueo comprobando si hay entradas distintas de la entrada especificada que actualmente no tienen datos disponibles para procesar en los búferes que el componente ya ha recibido (inputBuffers[i].CurrentRow() == null). A continuación, el método GetDependentInputs devuelve la colección de entradas del bloqueo como una recopilación de identificadores de entrada.

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;  
}  

Comentarios

Al establecer el valor de la Microsoft.SqlServer.Dts.Pipeline.DtsPipelineComponentAttribute.SupportsBackPressure propiedad true en en , DtsPipelineComponentAttributey el componente de flujo de datos personalizado admite más de dos entradas, también debe proporcionar una implementación para el GetDependentInputs método .

El motor de flujo de datos solo llama al método GetDependentInputs cuando el usuario adjunta más de dos entradas al componente. Cuando un componente tiene solo dos entradas y el IsInputReady método indica que una entrada está bloqueada (canProcess = false), el motor de flujo de datos sabe que la otra entrada está esperando recibir más datos. Sin embargo, cuando hay más de dos entradas y el IsInputReady método indica que se bloquea una entrada, el código adicional del GetDependentInputs método identifica las entradas que están esperando recibir más datos.

Para obtener más información sobre el control del uso excesivo de memoria si las entradas de un componente de flujo de datos personalizado producen datos a velocidades desiguales, consulte Desarrollo de componentes de Data Flow con varias entradas.

Se aplica a