在C#中运行并行任务

问题描述 投票:-1回答:2

我正在开发一个我需要进行并行任务的软件。例如,这是我的task1

Task t1 = new Task(()=>
        {
            //Do Some Codes
        }
        );

我有更多的任务与task1具有相同的代码:

Task t2 = new Task(()=>
        {
            //Do task1 codes
        }
        );
Task t3 = new Task(()=>
            {
                //Do task1 codes
            }
            );
t1.start();
t2.start();
t3.start();

我也有一个计时器,以便我可以检查这些任务是否有效并更快地完成这些过程。但它不会改变,它们只有一项任务。

现在我想知道如何运行并行任务并给我更快的结果。

任何帮助将不胜感激

c# parallel-processing task multitasking
2个回答
0
投票

您可以尝试使用“多线程”来调用方法或调用异步方法。这应该有所帮助。

更多信息:

https://docs.microsoft.com/en-us/dotnet/csharp/async

关于这个问题的投票答案也可能有所帮助

What is the difference between asynchronous programming and multithreading?


0
投票

假设您有两个函数,并且希望并行执行它们。我认为有两种方法可以做到这一点:

1:使用任务并行库 -

private void Function1()
{
    //do work
}

private void Function2()
{
    //do work
}

private void RunParallel()
{
    Parallel.Invoke(Function1, Function2);
}

2:在单独的线程中运行每个函数 -

private void Function1()
{
    //do work
}

private void Function2()
{
    //do work
}

private void RunParallel()
{
    ThreadStart ts1 = new ThreadStart(Function1);
    ThreadStart ts2 = new ThreadStart(Function2);

    Thread t1 = new Thread(ts1);
    Thread t2 = new Thread(ts2);

    t1.Start();
    t2.Start();
}
© www.soinside.com 2019 - 2024. All rights reserved.