我有一个应用程序,我将文件添加到我的Listbox
并运行这些文件。PcapDot.Net
我的应用程序使用项目 DLL播放这些文件并通过网络适配器发送数据包。方法很简单:将所有文件添加到我的应用程序Listbox
并单击播放按钮后,应用程序处理第一个文件,该文件完成后下一个文件开始。我想要做的是向我的 GUI 添加控制以控制打开线程的数量,以便能够同时播放多个文件。
这是我的播放按钮事件:
private BackgroundWorker bw;
private void btnPlay_Click(object sender, EventArgs e)
{
bw = new BackgroundWorker();
bw.WorkerReportsProgress = true;
bw.WorkerSupportsCancellation = true;
bw.DoWork += new DoWorkEventHandler(bw_DoWork);
bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
manualResetEvent = new ManualResetEvent(false);
if (bw.IsBusy != true)
bw.RunWorkerAsync();
}
private void bw_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i < listBoxFiles.Items.Counti++) //run in loop all over my listbox
{
// here if have several wiresharkFile events that update my UI:
wiresharkFile.statusChangedEvent += new WiresharkFile.StatusChangedDelegate(
(wFile) =>
{
bw.ReportProgress(wiresharkFile.packetProgressPrecentage, wiresharkFile);
});
wiresharkFile.sendBuffer(); //play the file
}
}
添加选项以同时打开多个线程的最佳方法是什么?