簡體   English   中英

在C#中運行並行任務

[英]run parallel tasks in C#

我正在開發需要執行並行任務的軟件。 例如,這是我的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();

我也有一個計時器,以便我可以檢查這些任務的工作情況並更快地完成流程。 但這不會改變,並且它們與一項任務具有相同的時間。

現在,我想知道如何運行並行任務並給我更快的結果。

任何幫助將不勝感激

假設您有兩個函數,並且想要並行執行它們。 我認為您可以通過兩種方式進行操作:

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

您可以嘗試使用“多線程”來調用您的方法或調用異步方法。 那應該有幫助。

有關更多信息:

https://docs.microsoft.com/zh-cn/dotnet/csharp/async

關於這個問題的投票答案也可能會有所幫助

異步編程和多線程有什么區別?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM