我是ASP.NET Core的新手,所以也许我做错了什么,这是我的问题:
我需要什么:加载开始页面后,开始在后台加载Azure存储中的应用程序特定数据并在前端显示它的状态
我为实现这一目标做了什么:
public ViewResult Index()
{
var homeModel = new HomeModel();
Task.Run(() =>
{
// Some specific work to do...
System.Threading.Thread.Sleep(4000);
});
return View(homeModel);
}
当我运行此代码时,前端视图不会显示,直到任务未完成,即使它是不同的托管线程(我也尝试使用新的Thread.Start执行相同操作) (()=> ...); )。
我的问题是:这种行为的原因是什么?正如我所说,我是ASP.NET Core的新手,而且我还没有使用过以前版本的ASP.NET。
我有一些想法如何解决这种行为,但我想知道正确的方法来理解它的原因:)
P.S。我使用SignalR从后端更新视图。
答案 0 :(得分:0)
您的应用程序启动作业方法是错误的。看看IApplicationLifetime界面。 Here是一个关于它的问题
答案 1 :(得分:-2)
ThreadStart starter = delegate { SomeVoid(somevar); };
Thread tr = new Thread(starter);
tr.IsBackground = true;
tr.Start();
tr.Join();
如果需要更多线程 使用线程和循环列表,对不起,如果我不帮助你