[英]Run Methods inside a thread synchronously C# .net core
我正在像這樣在我的 .net 核心 controller 中啟動一個后台線程
var t = new System.Threading.Thread(() => LongRunningTask())
{ IsBackground = true };
t.Start();
然后我的長時間運行方法與此類似
public void LongRunningTask(){
A();
B();
C();
}
但是有時我注意到方法 C 在方法 A 結束之前執行。有沒有辦法讓這些 AB C 方法一個接一個地執行。
或者是否有 ant 更好的方法來運行這個長時間運行的任務,而無需用戶等到所有這些完成?
它們在同一個線程上一個接一個地啟動,因此A
將始終在B
開始之前完成,假設A
是同步的,並且不包括任何await
語句,這將導致它在您認為它完成之前返回。
如果方法是異步的,它們應該返回一個Task
並且你應該等待它們,例如:
var t = new System.Threading.Thread(async () => await LongRunningTask())
{ IsBackground = true };
t.Start();
async Task LongRunningTask()
{
await A();
await B();
await C();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.