C++ cli 如何执行多个打开的文件?
这就是我的任务 我创建了一个GUI,它由两个按钮组成,如图所示 因此,对于“浏览捕获的文件”按钮,我必须通过OpenFIleDialog打开多个文件并读取它。这是打开和读取文件的代码C++ cli 如何执行多个打开的文件?,c++-cli,C++ Cli,这就是我的任务 我创建了一个GUI,它由两个按钮组成,如图所示 因此,对于“浏览捕获的文件”按钮,我必须通过OpenFIleDialog打开多个文件并读取它。这是打开和读取文件的代码 Stream^ myStream; OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog; openFileDialog1->InitialDirectory = "c:\\"; openFileDialog1->Title = "open c
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)
{
}
}
Stream^myStream;
OpenFileDialog^openFileDialog1=gcnew OpenFileDialog;
openFileDialog1->InitialDirectory=“c:\\”;
openFileDialog1->Title=“打开捕获的文件”;
openFileDialog1->Filter=“CP文件(*.CP)|*.CP |所有文件(*.*)|*.*txt文件(*.txt)|*.txt”;
openFileDialog1->FilterIndex=2;
openFileDialog1->Multiselect=true;
如果(openFileDialog1->ShowDialog()==System::Windows::Forms::DialogResult::OK)
{
对于每个(openFileDialog1->文件名中的字符串^file)
{
数组^lines=System::IO::File::ReadAllLines(文件);
对于每个(行中的字符串^line)
{
}
}
}
在那之后,我想在每个文件上开始实现。我打开的文件,例如“1_1.cp”、“2_1.cp”和“3_1.cp”。在“开始分析”按钮,我将开始对文件进行分析,并需要为每个文件分配不同的任务或功能
现在我的问题是,我将如何分配每个打开的文件来执行特定的任务或功能。例如,1_1.cp执行任务A,2_1.cp执行任务B等等?有人能帮忙提出一些想法吗
我想把它变成一个自动化系统
提前感谢。您需要为
系统::线程::线程池定义一个辅助方法,并在分析一行时,将一个项目排入线程池
for each (String^ line in lines)
{
System::Threading::ThreadPool::QueueUserWorkItem( gcnew WaitCallback(YourMethod), dataToPass);
}
查找ThreadPool
我可以问一下这样做的目的是什么吗?因为我想将打开的文件分配到“开始分析”并开始分析功能。我可以知道这两个按钮都链接了吗?这意味着在“浏览捕获文件”中打开的文件可以在“开始分析”中读取?谢谢。使用此方法,您将创建一个执行您指定任务的线程。我不知道依赖关系和内部数据传递。不过,我不太确定我是否理解正确……究竟“分配每个文件执行不同的任务或功能”是什么意思?你为什么要这么做?你是在问如何并行处理这些文件吗?