Package.MaxConcurrentExecutables Property


Gets or sets the number of threads that a package can create.

 property int MaxConcurrentExecutables { int get(); void set(int value); };
[Microsoft.SqlServer.Dts.Runtime.Localization.LocalizablePropertyCategory(typeof(Microsoft.SqlServer.Dts.Runtime.Localized), "PropertyCategoryExecution")]
[Microsoft.SqlServer.Dts.Runtime.Localization.LocalizablePropertyDescription(typeof(Microsoft.SqlServer.Dts.Runtime.Localized), "MaxConcurrentExecutablesDesc")]
public int MaxConcurrentExecutables { get; set; }
[<Microsoft.SqlServer.Dts.Runtime.Localization.LocalizablePropertyCategory(typeof(Microsoft.SqlServer.Dts.Runtime.Localized), "PropertyCategoryExecution")>]
[<Microsoft.SqlServer.Dts.Runtime.Localization.LocalizablePropertyDescription(typeof(Microsoft.SqlServer.Dts.Runtime.Localized), "MaxConcurrentExecutablesDesc")>]
member this.MaxConcurrentExecutables : int with get, set
Public Property MaxConcurrentExecutables As Integer

Property Value

The number of threads that a package can create.



The following code example sets the MaxConcurrentExecutables to 1, and sets that value on the ForEachLoop so the ForEachLoop will run one task at a time.

Package p;  
p.MaxConcurrentExecutables = 1;  
ForEachLoop loop;  
loop.MaxConcurrent = p.MaxConcurrentExecutables;  
Dim p As Package  
p.MaxConcurrentExecutables = 1  
Dim loop As ForEachLoop  
loop.MaxConcurrent = p.MaxConcurrentExecutables  


Valid values are one and higher, or -1. Other values are invalid. A value of -1 allows the maximum number of concurrently running executables to equal the number of processors plus two. Setting this property to zero or any other negative value fails with an error code that indicates an invalid argument.

This property is used when parallelism exists in the workflow. If the workflow is a series of sequential precedence constraints, then this property has no effect.

Applies to