我正在开发一个我需要进行并行任务的软件。例如,这是我的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();
我也有一个计时器,以便我可以检查这些任务是否有效并更快地完成这些过程。但它不会改变,它们只有一项任务。
现在我想知道如何运行并行任务并给我更快的结果。
任何帮助将不胜感激
您可以尝试使用“多线程”来调用方法或调用异步方法。这应该有所帮助。
更多信息:
https://docs.microsoft.com/en-us/dotnet/csharp/async
关于这个问题的投票答案也可能有所帮助
What is the difference between asynchronous programming and multithreading?
假设您有两个函数,并且希望并行执行它们。我认为有两种方法可以做到这一点:
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();
}