ThreadPool.SetMaxThreads(Int32, Int32) 메서드

정의

동시에 활성 상태가 될 수 있는 스레드 풀에 대한 요청 수를 설정합니다. 해당 개수를 초과하는 모든 요청은 스레드 풀 스레드가 사용 가능해질 때까지 큐에 대기 상태로 남아 있습니다.

public:
 static bool SetMaxThreads(int workerThreads, int completionPortThreads);
public static bool SetMaxThreads (int workerThreads, int completionPortThreads);
static member SetMaxThreads : int * int -> bool
Public Shared Function SetMaxThreads (workerThreads As Integer, completionPortThreads As Integer) As Boolean

매개 변수

workerThreads
Int32

스레드 풀에 있는 최대 작업자 스레드 수입니다.

completionPortThreads
Int32

스레드 풀에 있는 최대 비동기 I/O 스레드 수입니다.

반환

성공적으로 변경되면 true이고, 그렇지 않으면 false입니다.

설명

Windows 스레드 풀이 .NET 스레드 풀 대신 사용하도록 구성된 경우에는 이 메서드가 지원되지 않습니다. 자세한 내용은 Windows 스레드 풀 구성 설정을 참조하세요.

최대 작업자 스레드 수 또는 I/O 완료 스레드 수를 컴퓨터의 프로세서 수보다 작은 수로 설정할 수 없습니다. 존재하는 프로세서 수를 확인하려면 속성 값을 Environment.ProcessorCount 검색합니다. 또한 최대 작업자 스레드 수 또는 I/O 완료 스레드 수를 해당하는 최소 작업자 스레드 수 또는 I/O 완료 스레드보다 작은 수로 설정할 수 없습니다. 최소 스레드 풀 크기를 확인하려면 메서드를 호출합니다 GetMinThreads .

공용 언어 런타임이 호스트되는 경우(예: IIS(인터넷 정보 서비스) 또는 SQL Server 호스트는 스레드 풀 크기 변경을 제한하거나 방지할 수 있습니다.

스레드 풀의 최대 스레드 수를 변경할 때는 주의해야 합니다. 코드가 도움이 될 수 있지만 변경 내용은 사용하는 코드 라이브러리에 부정적인 영향을 미칠 수 있습니다.

스레드 풀 크기를 너무 크게 설정하면 성능 문제가 발생할 수 있습니다. 스레드가 너무 많이 동시에 실행되는 경우 오버헤드를 전환하는 작업이 중요한 요소가 됩니다.

참고

스레드 풀의 최대 스레드 수에 대한 상한이 있을 수 있습니다(예: short.MaxValue구현에 따라 ). 인수 값은 상한으로 제한되므로 메서드가 를 반환 true하더라도 실제 최대 스레드 수가 요청된 것보다 낮을 수 있습니다.

적용 대상

추가 정보