我有三个不同的功能,我根据条件调用。当数据较少时,我的应用程序性能良好。但是,我有大约11000行数据,我的申请需要1-2小时才能完成整个过程。
我在我的函数中编写了一些逻辑,用于过滤数据并添加到集合中。有什么办法可以使用多线程或并行处理来提高我的应用程序的性能。这样我的函数就可以并行运行并且性能得到改善。
我在下面创建了我的要求样本:
private void button1_Click(object sender, EventArgs e)
{
String[] AllData = new String[7];
AllData[0] = "1";
AllData[1] = "2";
AllData[2] = "3";
AllData[3] = "1";
AllData[4] = "2";
AllData[5] = "3";
AllData[6] = "1";
for (int i = 0; i < AllData.Length; i++)
{
CommonFunction(AllData[i]);
}
}
private void CommonFunction(String AllData)
{
if (AllData == "1")
{
Function1(1);
}
else if (AllData == "2")
{
Function2(2);
}
else
{
Function3(3);
}
}
private void Function1(int ID)
{
for (int i = 0; i < 10; i++)
{
}
}
private void Function2(int ID)
{
for (int i = 0; i < 10; i++)
{
}
}
private void Function3(int ID)
{
for (int i = 0; i < 10; i++)
{
}
}
非常感谢任何帮助。
答案 0 :(得分:-1)
您可以尝试使用for
。
Parallel.ForEach
循环
for (int i = 0; i < AllData.Length; i++)
{
CommonFunction(AllData[i].ToString());
}
可以转换为
Parallel.ForEach(AllData, someData =>
{
CommonFunction(someData);
});