TeraOmegaNetwork 2.0
<2010年9月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

macでVS2010
iPadでVS2010
ミニノートPCでVS2010
C# 3.0 LINQ Sort
ぱられる。ふぉー
Parallel.For
C#4.0 続2 Parallelクラス
C#4.0 続 Parallelクラス
Internet Explorer の検索ボックスを表示しない
2010年度になりました

プログラミング
・C#
・C/C++
・Java
・Visual Basic
・Visual Basic .NET
・色々な言語
・メモ
管理人の落書き
リンク
テンプレート作成支援言語
IEAuto
クラス設計






Web デベロッパー

必要科目
70-536
70-528
70-547



・Sun認定Javaプログラマー(SJC-P 035)
・OracleSilverFaeroe 9i
・UMTP Lv1
・基本情報技術者


・セキュリティスペシャリスト合格
・テンプレート作成支援言語(T言語)を広める事

  お勧め1「テンプレート作成支援言語(T言語)」ver 1.1.1         20010/02/26 更新
テンプレート作成支援言語について
ダウンロードする。

お勧め2「ブラウザ自動操作ツール(IEAuto2009)」ver 1.6.1    20010/03/25 更新
ブラウザ自動操作ツール(IEAuto 2009)について
ダウンロードする。

お勧め3
「データベース更新前更新後比較ツール(DBCMP) Oracle接続可」ver 1.4.0  20010/03/14 新規公開
ダウンロードする。

プログラミング - C#
ぱられる。ふぉー

Parallel.For実装メモ。
匿名メソッドVerも作ってみました。デリデリしてます。


ラムダ式による実装
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
//参考URL:http://msdn.microsoft.com/ja-jp/library/dd460703.aspx
//<long>:戻り値の型をlongと指定。
//ループ開始:0
//ループ終了:lst.Count
//初期値  :() => 0 //delegate() { return 0;} 初期値を返す匿名メソッド。一時的に定義できるメソッド。
//実際の処理:(j, loop, subtotal) => {} //delegate (int j, ParallelLoopState loop, long subtotal){}
//                                      //ループindex, ループをし続けるかなどの情報, 戻り値を引数とする
//                                      //匿名メソッド。その匿名メソッドの処理でループの処理を定義する。
//ループ処理が終わった後に動く処理:(subtotal) => {}
//                                  //スレッドが複数動いた場合、スレッド毎にループ処理が終わり、
//                                  //実際の処理の戻り値が引数として返ってくるので、それを元に最終的な合計を
//                                  //求めている。CPUのコアが4つの場合だとこの処理は4回走る。(※確信は無いけど)
//                                  //Interlocked.Addによりsumを計算する場合に同時にsum変数にアクセスしないように
//                                  //計算を行っている。
Parallel.For<long>(0, lst.Count, () => 0, (j, loop, subtotal) => {
    subtotal += lst[j];
    return subtotal;
},
    (subtotal) => Interlocked.Add(ref sum, subtotal) //各々のスレッドで求めたsubtotalをローカル変数sumにセットする。

);



匿名メソッドによる実装
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
//ラムダ式を匿名メソッドで全て表現。
Parallel.For<long>(
    //開始値、終了値
    0, lst.Count, 
    //ループの初期値を返却
    delegate() {
        return 0;
    }, 
    //実処理の実装
    delegate(int j, ParallelLoopState loop, long subtotal) {
        subtotal += lst[j];
        return subtotal;
    },
    //実処理が終わった後の処理を実装
    delegate(long subtotal) {
        Interlocked.Add(ref sum, subtotal);
    }
);


・検索キーワード:  C# 4.0

戻る  マイリストへ追加