.NET4では、System.Threading.Tasks名前空間にあるParallel.Invokeメソッドを使うことで、複数のメソッドを簡単にマルチスレッドで実行することができる。
ただし制限として、引数なし、戻り値voidのメソッドに限られる点に注意。
【参考】http://www.atmarkit.co.jp/fdotnet/csharp4/csharp4_02/csharp4_02_01.html
このページでは、CPUに存在するコア数を超えてマルチスレッド処理を行った場合、逆にパフォーマンスが下がることがあることも指摘している。これも合わせて参考になる。
さらに、.NETで稼動コンピュータのCPUコア数を知る方法もあるようです。
【参考】http://gurizuri0505.halfmoon.jp/20080806/2423
【参考】http://social.msdn.microsoft.com/Forums/ja-JP/netfxgeneralja/thread/eeed7149-6a36-4c64-a41f-5d93600e821a
これを併用すれば、搭載されているCPUコア数を元に最適なスレッド数で処理を実現するコードも書けそうです。
2010年08月23日
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/107012344
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック
http://blog.sakura.ne.jp/tb/107012344
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック