【问题标题】:run parallel tasks in C#在 C# 中运行并行任务
【发布时间】:2017-12-29 11:08:15
【问题描述】:

我正在开发一个需要执行并行任务的软件。 例如这里是我的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


【解决方案1】:

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

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();
}

【讨论】:

    【解决方案2】:

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

    更多信息:

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

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

    What is the difference between asynchronous programming and multithreading?

    【讨论】:

      猜你喜欢
      • 2016-02-28
      • 2018-11-28
      • 2023-01-27
      • 2015-08-23
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多