У меня есть приложение, которое использует BackgroundWorker для воспроизведения файлов из списка.После того, как я нажму кнопку «Стоп», запущенный файл остановится, но не остановит воспроизведение следующего файла в списке.
Переменные в коде: playCount - сколько файлов я запустил,numberOfLoops - сколько циклов я хочу запустить, Loops - это все файлы в моем списке (listBoxFiles), а myClass.playCapture - что работает в фоновом режиме.
while (playCount < numberOfLoops && bContinuePlay && ifContinue) //play the file
{
for (int i = 0; (i < listBoxFiles.Items.Count) && bContinuePlay && ifContinue; i++)
{
string path = (string)listBoxFiles.Items[i];
myClass = new myClass(path, playSpeed);
myClass.evePacketProgress += new myClass.dlgPacketProgress(
(progressCount) =>
{
myClass._fileSelectedIndex = i;
bgWoSingle.ReportProgress(progressCount, myClass);
});
if (selectedAdapter != null)
{
bContinuePlay = myClass.playCapture(selectedAdapter._packetDevice); //here the BackgroundWorker running
}
}
playCount++;
}