2012-03-26 10 views
5

は、私はその方法をこの方法を使用しようとしています。ThreadPool.QueueUserWorkItemユースケース

エラーCS1593:​​0' を引数

引数なしでそれを行う方法の任意のアイデア

委任する? 、任意の代替?

+0

ThreadPool.QueueUserWorkItem((state))=> {{...}; コールバックにはオブジェクトパラメータが必要です。あなたはそれを使用する必要はありません。 –

答えて

12

あなただけのラムダ式のパラメータを提供し、それを無視することができます

ThreadPool.QueueUserWorkItem(ignored => 
{ 
    while(!paused) 
    { 
     ThreadPool.QueueUserWorkItem(alsoIgnored => {...}); 
    } 
}); 

またはその代わりに匿名メソッドを使用します。あなたは匿名のパラメータを気にしない場合は

ThreadPool.QueueUserWorkItem(delegate 
{ 
    while(!paused) 
    { 
     ThreadPool.QueueUserWorkItem(delegate {...}); 
    } 
}); 

をメソッドを宣言する必要はありません。

0

あなたが渡すデリゲートは、1つの引数を取る必要があります。それを無視したい場合は、大括弧を変数名で置き換えることができます。

2

ThreadPool.QueueUserWorkItemは、パラメータとしてSystem.Threading.WaitCallbackデリゲートを必要とします。このデリゲートには1つのパラメーターがあり、ラムダ式にはパラメーターがありません。パラメータを無視する場合は、次のように指定します。

ThreadPool.QueueUserWorkItem(_ => 
{ 
    //... 
}); 
関連する問題