私のアプリケーションでは、Listbox
私のクラスを使用してこのファイルを実行しています。また、アプリケーションがすべてのファイルを終了した後、リストボックスからすべてのファイルを再生し続けたい場合、つまりすべてのファイルを再度開始する場合は、ループオプションがあります。 [再生] ボタンに存在するタスクを [While] 内に配置しますが、ファイルが最初にのみ実行され、後で実行されても続行されませんnumericUpDownLoops.Value == 2
。loopCount = 1
NumericUpDown numericUpDownLoops;
private void btnPlay_Click(object sender, EventArgs e)
{
int loopCount = 0;
if (loopCount < numericUpDownLoops.Value)
{
Task.Factory.StartNew(() =>
{
var files = listBoxFiles.Items.Cast<string>().ToList();
Parallel.ForEach(files,
new ParallelOptions
{
MaxDegreeOfParallelism = 1 // limit number of parallel threads
},
file =>
{
//play my file
});
}).ContinueWith(
t =>
{
loopCount++;
}
, TaskScheduler.FromCurrentSynchronizationContext() // to ContinueWith (update UI) from UI thread
);
}
}