在C#中运行并行任务

时间:2017-12-29 11:08:16

标签: c# parallel-processing task multitasking

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

task1

我有更多与Task t1 = new Task(()=> { //Do Some Codes } ); 具有相同代码的任务:

task1

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

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

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:0)

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

更多信息:

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

关于这个问题的投票答案也很有帮助

What is the difference between asynchronous programming and multithreading?

答案 1 :(得分: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();
}