2011-12-21 3 views
0

私自身のカスタムスレッドプールを作成したいと思います。私の関数の1つにパラメータとしてWaitCallbackデリゲートがあり、基本スレッドプールのように使用して、セットからフリースレッドで実行するようにしたいと考えています。自分のスレッドプールでwaitcallbackデリゲートを使用しています

私の問題は、WaitCallback代理人(msdnと他のサイトの唯一の例は、スレッドプール側からメソッドをスレッドプールにデリゲートする方法を示しています)を使用する方法がわかりません。

WaitCallbackからメソッドを取得する方法についていくつかの光を与えることができますか(WaitCallback/threadpoolが他の方法で動作するかどうか、それがどのように動作するかはわかります)。

ありがとうございます!

+0

を私は失礼現れることを憎むが、あなたは、私は非常に疑問WaitCallbackを使用する方法がわからない場合は、MSやHTTPよりも優れスレッドプールを作成します://smartthreadpool.codeplex.com –

答えて

1

WaitCallbackは、カスタムデリゲートタイプです。宣言がある場合は、public delegate void WaitCallback(object state);となります。 これを使用して、objectタイプの入力パラメータを持つメソッドを割り当てます。例public void MyMethod(object parameter)WaitCallback wc = new WaitCallback(MyMethod)に割り当てることができます。

+0

投稿していただきありがとうございます! 私はデリゲートWaitCallbackを作成する方法を知っていますが、問題はこのデリゲートを使用する方法です。 例: myfunction(WaitCallback wcd) { //メソッドを使用するには、今wcdで何をすべきですか? } 新しいスレッドでメソッドを実行したいです。このようにこのメソッドを使用することが可能になりましたか、またはスレッドプールはWaitCallbackを他の方法で使用していますか? –

0

あなたの意図する内容はあまり明確ではありません。新しいスレッドを起動したい場合は、使用することができます。

public void ExecuteWork(WaitCallback wcb, Object param) 
{ 
    Thread t = new Thread(
     o => 
     { 
      wcb(o); 
     }); 
    t.Start(param); 
} 
+0

答えをありがとう。うん、WaitCallbackを使って新しいスレッドを起動したかったのです。 –

関連する問題