スレッドの処理方法を引数として受け取って、ThreadPoolによってスレッドキューへ追加

ThreadPool.QueueUserWorkItem メソッドは、スレッド プールで実行するメソッドを指定するデリゲートを受け取ります。

委任のシグネチャは次のスレッドスタート委任の例と一致する必要がある。

void YourMethod();

またはメソッドに引数を渡す必要がある場合は、ParameterizedThreadStart デリゲートを使用します。

void YourMethod(object state);

state引数の使用:任意のオブジェクトをメソッドに渡すために使用されます。

ThreadPool.QueueUserWorkItem メソッドを使用する例の 1 つは次のとおりです。

// 定义一个方法,用于在线程池中执行
void DoWork()
{
// 在这里编写要执行的代码
}
// 调用ThreadPool.QueueUserWorkItem方法,并传递要执行的方法
ThreadPool.QueueUserWorkItem(DoWork);

あるいはメソッドに引数を渡す場合は、

// 定义一个方法,用于在线程池中执行
void DoWork(object state)
{
// 将传递的参数转换为所需的类型
int num = (int)state;
// 在这里编写要执行的代码
}
// 调用ThreadPool.QueueUserWorkItem方法,并传递要执行的方法以及参数
int yourNumber = 10;
ThreadPool.QueueUserWorkItem(DoWork, yourNumber);

上述の例では、スレッドプール内のスレッドが利用可能になると、DoWorkメソッドが呼び出され、バックグラウンドスレッド上で実行されます。メソッドに返り値が必要な場合は、非同期プログラミングモデル(Async/Await)など、別のメカニズムを使用して処理できます。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds