-1

在我的应用程序中,我从我的文件中获取文件Listbox并使用我的类运行这些文件,如果我想在应用程序完成所有文件后继续播放我的列表框中的所有文件,我也有循环选项,即重新开始所有文件所以我把存在于我的播放按钮中的任务放在里面,但它只在第一次运行我的文件,之后即使我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

0

我没有在 numericUpDownLoops.Value 上看到循环 - 您检查一个条件,然后启动一个并行处理文件的任务。尝试将 更改if()while().

于 2013-06-02T17:49:49.147 回答