リストボックス内のすべてのファイルを実行する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キーを押すと、ブレークポイントを使用することで、このエラーをデバッグすることができます。 –
例外はどこで手に入りますか? winformsコントロールのmulithreading問題のようです。 – munissor
私の更新を見てください。コードが追加されました – user1269592