我有Winform應用程序誰運行列表框中的所有文件, 我使用Pcapdotnet DLL發送數據包到我的網絡適配器,過程是,我正在採取Wireshark捕獲文件並用這個文件發送所有的數據包。 每個文件將與BackgroundWorker的運行,它的下一次完成了我的列表框srart後運行等 我添加了一個複選框,選中此複選框處於選中狀態的所有文件在同一時間同時運行。 時,它的運行我的應用程序崩潰與錯誤:異常已通過調用的目標拋出:有錯誤的應用程序崩潰異常已拋出目標
static void Main()
{
Adapters addr = new Adapters();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new mainWindow());
}
在上線收到的錯誤(Application.Run(新的主窗口());)
這是我的代碼誰處理中同時運行:
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
您可以通過按F5和使用斷點調試這個錯誤。 – 2012-03-16 16:09:32
你從哪裏得到例外?似乎是一個mulithreading問題與WinForms控件 – munissor 2012-03-16 16:10:26
看到我的更新,代碼添加 – user1269592 2012-03-16 16:17:21