如何执行多个打开的文件?

时间:2013-03-24 09:37:37

标签: c++-cli

这就是我的任务,

我创建了一个GUI,它包含两个按钮,如图所示

enter image description here

因此,对于“浏览捕获文件”按钮,我必须通过OpenFIleDialog打开多个文件并读取它。这是打开和读取文件的代码。

Stream^ myStream;

OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;
openFileDialog1->InitialDirectory = "c:\\";
openFileDialog1->Title = "open captured file";
openFileDialog1->Filter = "CP files (*.cp)|*.cp|All files (*.*)|*.*|txt files (*.txt)|*.txt";
openFileDialog1->FilterIndex = 2;
openFileDialog1->Multiselect = true;

if ( openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK )
     {

for each (String^ file in openFileDialog1->FileNames) 
{  

       array<String^>^ lines = System::IO::File::ReadAllLines(file);  

     for each (String^ line in lines) 
     {          
     }
}    

}

之后,我想开始实现每个文件。我打开的文件,例如“1_1.cp”,“2_1.cp”和“3_1.cp”。在“开始分析”按钮,我将开始对文件进行分析,并需要分配每个文件以执行不同的任务或功能。

现在我的问题是,我如何分配每个打开的文件来执行特定的任务或功能。例如,1_1.cp执行任务A,2_1.cp执行任务B,依此类推?任何人都可以帮忙提出一些想法吗?

我希望将其作为自动化系统。

提前全部谢谢。

1 个答案:

答案 0 :(得分:0)

您需要为System::Threading::ThreadPool定义一个工作方法,并在分析一行时将项目排队到ThreadPool

 for each (String^ line in lines) 
 {
    System::Threading::ThreadPool::QueueUserWorkItem( gcnew WaitCallback(YourMethod), dataToPass);    
 }

ThreadPool查看{{1}}。