Action<string, int, double, double>
の配列を定義し、Parallel.Invoke()
を使用してパラレルで実行したいとします。アクションをパラメーターレスアクションにキャストして、私がこれを行うことができるようにする方法はありますか、それとも別の方法がありますか?Parallel.Invokeを使用してパラメータを使用してメソッドを実行
3
A
答えて
5
あなたはこれを試みることができる:
Parallel.Invoke(() =>
{
YourFirstAction(param1, param2, param3, param4);
}, // close first Action
() =>
{
YourSecondAction(param1, param2, param3, param4);
}//close second Action
); //close parallel.invoke
0
私はあなたがパラメータ値を送信せずにそれらを実行して大丈夫ならアクションはパラメータを持っている理由として困惑しています。それはおそらくデフォルト値でParallel.ForEachを使用するのがベストだろう:
Action<string, int, double, double>[] actions;
// Action array, actions, set somewhere in code.
Parallel.ForEach(actions, action => action(string.Empty, 0, 0, 0));
あなたが合うように値を置き換え、その後のパラメータを送信する場合。
私は私のテストのために、次のアクションを使用:秒の長さ20の配列のための
Parallel.For(0, actions.Length, index => actions[index] = (s, i, d1, d2) => Thread.Sleep(100));
Parallel.For(0, parameterless.Length, index => parameterless[index] =() => Thread.Sleep(100));
結果:
Parallel.Invoke:0.3000709
Parallel.ForEach:0.3022143
正規のforループ:2.0000706
したがって、Parallel.Invokeにはパラメータのないアクションを使用する利点がありますが、パフォーマンスにはわずかな影響しか及ぼしませんが、あまり効果はありません。
私はParallel.ForEachを使用してパラメータのないアクション配列をテストしましたが、結果はParallel.Invokeとほぼ同じで、結果は0.300979秒でした。
+0
なぜこれがダウンリストされていますか?これは実際に彼の問題に対する答えかもしれません... –
関連する問題
- 1. Pythonはパラメータを使用してwsdlメソッドを実行します
- 2. 即時ウィンドウでoutパラメータを使用してメソッドを実行
- 3. Windowsでapache.commons.execを使用してパラメータを使用してシェルスクリプトを実行する
- 4. 、 <p>私が遊んでロックを使用してきたParallel.Invoke</p>の外リストへの応答を追加し、それぞれの方法で、私は方法がParallel.Invokeを使用して実行しようとしてるリストとParallel.Invoke
- 5. AngularJSを使用してパラメータを使用してWeb ApIメソッドを呼び出す
- 6. Parallel.Invokeを使用してクロススレッド操作が無効である
- 7. ASP.NETのItemTemplateパラメータを使用したメソッドの実行
- 8. は、使用して[NOTNULL]メソッドのパラメータ
- 9. VBでパラメータを使用してCMDコマンドを実行する
- 10. パラメータを使用してerlangでコマンドを実行する
- 11. パラメータを使用してnpm {bin:script.js}を実行する方法
- 12. 複数のパラメータを使用してSQLクエリを実行
- 13. PowerShellのパラメータを使用してバッチコマンドを実行する方法
- 14. Oracle - パラメータを使用してクエリを実行するには?
- 15. WIXを使用してファイルをインストールした後でパラメータを使用してEXEを実行する
- 16. ユニットテストを使用してソースクラスから特定のメソッドを実行
- 17. CでWindowsアプリケーションを使用してhttpメソッドを実行する#
- 18. WokManagerを使用してメソッドを非同期に実行
- 19. アンドロイドラジオボタンを使用してメソッドを実行する
- 20. スレッドを使用してメソッドを実行する
- 21. スレッドからコンストラクタを使用してメソッドを実行する
- 22. Celeryを使用して起動時にメソッドを実行する
- 23. Microsoft Fakesを使用してrefパラメータでメソッドをシムします
- 24. Java Spring Boot/Mysql - パラメータとしてHashSetを使用してクエリを実行する
- 25. パラメータを渡すvolleyライブラリを使用してGETメソッドを使用する
- 26. 実行サービスを使用して複数のオブジェクトのメソッドを同時に実行
- 27. セレングリッドを使用してリモートコードを実行
- 28. PHPを使用してシェルスクリプトを実行
- 29. nodejsを使用してシェルスクリプトコマンドを実行
- 30. qmakeを使用してシェルコマンドを実行
言語タグを追加することをおすすめします。 –