如何提高应用程序的性能?

时间:2018-05-15 06:38:11

标签: c#

我有三个不同的功能,我根据条件调用。当数据较少时,我的应用程序性能良好。但是,我有大约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++)
        {

        }
    }

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:-1)

您可以尝试使用for

,而不是顺序Parallel.ForEach循环
for (int i = 0; i < AllData.Length; i++)
{
    CommonFunction(AllData[i].ToString());
}

可以转换为

Parallel.ForEach(AllData, someData => 
{
    CommonFunction(someData);
});