猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

VisualStudio

c# Task(スレッド)を生成する際に引数に変数を使うときは注意

投稿日:2013年9月25日 更新日:

for(int i ; i  TestTask(object[i]));
} 

上記のように、引数に変数(この場合はi)を使用する場合には注意が必要です。
タスク(スレッド)の実行時にこのiは評価されるからです。

forループの後にTestTaskが実行されると、object(10)が引数になってしまいます。
もちろん想定外の結果になります。

ojbejct型を渡すコンストラクターを使用すればよいようです。
コンストラクターが呼び出される時に評価されるからのようですが、
実際にどうやって書けばいいかわかりません。後日追記予定。

とりあえず、定数を書いて対応しています・・・

Gooleアドセンス用336

Gooleアドセンス用336

-VisualStudio
-,

執筆者:

関連記事

c# デリゲート(delegate)とは

デリゲートの説明としてよく 処理の委譲とか関数ポインタとかでてきますが、 cはさわりしか知らないので、なかなか理解できませんでした。 結局のところ デリゲートを使用すると 関数を引数に利用できる! と …