public delegate void Action();
private Queue _TargetQueue;
呼ぶ側
for each {
//処理キューに入れる
this._TargetQueue.Enqueue(fnlv);
}
Action act = new Action(AnalyzeSourceDelegate);
this._非同期処理情報 = act.BeginInvoke(null,null);
Action act2 = new Action(AnalyzeSourceDelegate);
this._非同期処理情報 = act2.BeginInvoke(null,null);
Action act3 = new Action(AnalyzeSourceDelegate);
this._非同期処理情報 = act3.BeginInvoke(null,null);
Action act4 = new Action(AnalyzeSourceDelegate);
this._非同期処理情報 = act4.BeginInvoke(null,null);
呼ばれる側
for(;;)
{
//キューよりデータを取り出す。
FileNameListView fnlv;
try
{
fnlv = (FileNameListView)this._TargetQueue.Dequeue();
}
catch(InvalidOperationException)
{
//データがない場合には終了
return;
}
}
今作っているプログラムの一部だけど4多重といってもActioinデリゲートを4つ作っているだけ。
ね簡単でしょ?
ちなみに細かい処理をするのであればきちんと管理しないといけないんだけど利用の敷居は.Netで一気に下がっています。