この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

ThreadPool.SetMinThreads メソッド (Int32, Int32)

 

スレッドがオンデマンドで (新しい要求の発生ごとに) 作成するスレッド プールの数を設定します。この数を超えると、スレッドの作成と破棄を管理するためのアルゴリズムに切り替わります。

名前空間:   System.Threading
アセンブリ:  mscorlib (mscorlib.dll 内)

[SecurityPermissionAttribute(SecurityAction.Demand, ControlThread = true)]
public static bool SetMinThreads(
	int workerThreads,
	int completionPortThreads
)

パラメーター

workerThreads
Type: System.Int32

スレッド プールがオンデマンドで作成するワーカー スレッドの最小数。

completionPortThreads
Type: System.Int32

スレッド プールがオンデマンドで作成する非同期 I/O スレッドの最小数。

戻り値

Type: System.Boolean

変更が成功した場合は true、それ以外の場合は false

The thread pool provides new worker threads or I/O completion threads on demand until it reaches the minimum for each category. When the minimum is reached, the thread pool can create additional threads in that category or wait until some tasks complete. Beginning with the net_v40_short, the thread pool creates and destroys threads in order to optimize throughput, which is defined as the number of tasks that complete per unit of time. Too few threads might not make optimal use of available resources, whereas too many threads could increase resource contention.

When demand is low, the actual number of thread pool threads can fall below the minimum values.

If you specify a negative number or a number larger than the maximum number of active thread pool threads (obtained using M:System.Threading.ThreadPool.GetMaxThreads(System.Int32@,System.Int32@)), M:System.Threading.ThreadPool.SetMinThreads(System.Int32,System.Int32) returns false and does not change either of the minimum values.

System_CAPS_caution注意

By default, the minimum number of threads is set to the number of processors on a system. You can use the M:System.Threading.ThreadPool.SetMinThreads(System.Int32,System.Int32) method to increase the minimum number ofthreads. However, unnecessarily increasing these values can cause performance problems. If too many tasks start at the same time, all of them might appear to be slow. In most cases, the thread pool will perform better with its own algorithm for allocating threads. Reducing the minimum to less than the number of processors can also hurt performance.

The following example sets the minimum number of worker threads to four, and preserves the original value for the minimum number of asynchronous I/O completion threads.

using System;
using System.Threading;

public class Test
{
    public static void Main()
    {
        int minWorker, minIOC;
        // Get the current settings.
        ThreadPool.GetMinThreads(out minWorker, out minIOC);
        // Change the minimum number of worker threads to four, but
        // keep the old setting for minimum asynchronous I/O 
        // completion threads.
        if (ThreadPool.SetMinThreads(4, minIOC))
        {
            // The minimum number of threads was set successfully.
        }
        else
        {
            // The minimum number of threads was not changed.
        }
    }
}

SecurityPermission

for the ability to control threads. Permission value: F:System.Security.Permissions.SecurityPermissionFlag.ControlThread

.NET Framework
1.1 以降で使用可能
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
トップに戻る
表示: