-1

私のアプリケーションでは、Listbox私のクラスを使用してこのファイルを実行しています。また、アプリケーションがすべてのファイルを終了した後、リストボックスからすべてのファイルを再生し続けたい場合、つまりすべてのファイルを再度開始する場合は、ループオプションがあります。 [再生] ボタンに存在するタスクを [While] 内に配置しますが、ファイルが最初にのみ実行され、後で実行されても続行されませんnumericUpDownLoops.Value == 2loopCount = 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
);
            }
        }
4

1 に答える 1