【发布时间】:2021-07-17 19:25:49
【问题描述】:
我正在像这样在我的 .net 核心控制器中启动一个后台线程
var t = new System.Threading.Thread(() => LongRunningTask())
{ IsBackground = true };
t.Start();
那么我的长时间运行的方法就是这样的
public void LongRunningTask(){
A();
B();
C();
}
但有时我注意到方法 C 在方法 A 结束之前执行。 有没有办法让这些 A B C 方法一个接一个地执行。
或者有没有更好的方法来运行这个长时间运行的任务,而无需用户等待所有这些完成?
【问题讨论】:
-
您如何注意到这一点?
-
除非 A、B、C 是异步的,否则 C 不可能在 A 完成之前开始执行。
-
请提供方法
A、B和C的定义。 -
我正在像这样在我的 .net 核心控制器中启动一个后台线程——嗯,问题 1。你不从控制器运行线程。 ASP.NET Core 为您提供了出色的工具,允许您在后台执行操作,而无需诉诸诸如
Thread之类的过时模式。查找IHostedService或BackgroundService。
标签: c# multithreading asp.net-core .net-core asp.net-core-3.1