2016-04-19 11 views
-2

背景C#でメソッドCALLを渡す方法はありますか? (ではない一般的な機能/デリゲートタイプ)

私は実行する必要があるいくつかの方法で仕事のキューを構築したいと思います。次の6つのメソッドを作業キューに追加し、キューが使い果たされるまで実行したいと思います。

// method call #1 
InputConfiguration("discrete input"); 

// method call #2 
Thread.Sleep(100); 

// method call #3 
DisconnectFromGround("pin 8"); 

// method call #4 
CheckForPause(); 

// method call #5 
ConnectPins(7, 8); 

// method call $6 
DisconnectPin(9); 

質問

私は異なるパラメータとメソッド呼び出しのすべてを占めるようになることを使用することができますどのような構造/クラスはありますか?

+0

'Action'の配列を使用できますか? – Matthew

+1

汎用関数と代理型を禁止するのはなぜですか? –

+0

@DStanley私は、私がしなければならない3000もの事柄以上を持っていますが、その全てはまったく異なっています。 – Snoopy

答えて

2

戻り値が必要ない場合は、Actionが請求書に適合します。

List<Action> yourQueue = new List<Action>(); 
yourQueue.Add(() => InputConfiguration("discrete input")); 
yourQueue.Add(() => Thread.Sleep(100)); 
// And so on. 

"作業待ち行列"を作成するのではなく、新しい方法を書くのはなぜでしょうか?あなたは最高のパフォーマンスを得るでしょう。

+0

私は文字通り、正確な順序で逐次実行する必要がある3000以上のメソッドを持っています。それぞれの呼び出しの間に、私はいくつかの他のものをチェックする必要があります。 – Snoopy

+0

@StevieVそれは答えがうまくいかない理由を説明しません。 –

+1

@StevieV "作業単位"のための小さなメソッドにリファクタリングする必要があるように聞こえます –

関連する問題