TaskFactory.StartNew在页面加载中
本文关键字:加载 StartNew TaskFactory | 更新日期: 2023-09-27 17:59:01
在我的web应用程序中,我有一个仅用于显示的页面。验证数据后,用户可以下载报告,这大约需要2-3分钟的时间。我需要减少花费的时间。因此,我考虑在调用页面后开始生成报告,以共享时间,而不影响页面加载。我尝试在页面加载中使用Task.Factory.StartNew()
同时执行报告生成方法。问题是,我能够按预期执行该方法。但是,它只在报告生成完成时显示页面,即使页面加载事件已经结束。一旦页面加载完成,是否可以强制显示页面,并在后面继续报告生成过程?这是我的代码,
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
// page load condition checks
Task.Factory.StartNew(() => GenerateReports(), CancellationToken.None,
TaskCreationOptions.None, TaskScheduler.Default);
//
}
}
这会得到相同的结果吗?
Task GenReport = Task.Run (() =>
{
GenerateReports();
});
编辑:尝试将其放入一个新方法中,并从页面加载调用该方法
第二版:正如阿伦所建议的,不要使用任务运行。我只是想用我在c#而不是asp中所知道的来帮助别人。如果我进一步考虑……如果客户端多次刷新,可能会使服务器过载,这将创建多个任务。。。