У меня есть приложение Winform, которое запускает все файлы в списке,
Я использую DLL-библиотеки Pcapdotnet для отправки пакетов в мой сетевой адаптер, процесс в том, что я беру файл захвата Wireshark и с этим файлом отправляем все пакеты.
каждый файл будет работать с BackgroundWorker и после его завершения в следующий раз в моем списке srart для запуска и т. д.
Я добавил флажок, и когда этот флажок в проверенном состоянии, все файлы запускаются одновременно.
при запуске моего приложения происходит сбой с ошибкой: исключение было вызвано целью вызова в:
static void Main()
{
Adapters addr = new Adapters();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new mainWindow());
}
ошибка, полученная в последней строке (Application.Run (new mainWindow ());)
это мой код, который обрабатывает одновременный запуск:
for (int i = 0; i < listBoxFiles.Items.Count; i++)
{
string filePath = (string)listBoxFiles.Items[i];
playCount = 0;
BackgroundWorker bgWsim = new BackgroundWorker();
bgWsim.WorkerReportsProgress = true;
bgWsim.ProgressChanged += new ProgressChangedEventHandler(bgW_ProgressChanged);
bgWsim.DoWork += new DoWorkEventHandler(
(s3, e3) =>
{
while ((playCount < numberOfLoops) && (bContinuePlay)) //play the capture
{
for (int k = 0; (k < listBoxFiles.Items.Count) && (bContinuePlay); k++)
{
class = new myClass(filePath , playSpeed);
class.evePacketProgress += new class.dlgPacketProgress(
(progressCount) =>
{
bgWsim.ReportProgress(progressCount, class);
});
if (selectedAdapter != null)
{
bContinuePlay = class.playCapture(selectedAdapter._packetDevice);
}
playCount++;
Thread.Sleep((int)delay);
}
}
});
bgWsim.RunWorkerCompleted += new RunWorkerCompletedEventHandler(
(s3, e3) =>
{
groupBoxSelect.Enabled = true;
groupBoxOptions.Enabled = true;
groupBoxInfo.Enabled = true;
btnPlay.Enabled = true;
}
);
bgWsim.RunWorkerAsync();
}
как я могу отладить эту ошибку и найти проблему?
скриншот ошибки:
http://i42.tinypic.com/2ainbqp.jpg