0

在我的 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);
        //
    }
}
4

1 回答 1

-1

这会给你同样的结果吗?

Task GenReport = Task.Run (() =>
{
    GenerateReports();
});

编辑:尝试将其放入新方法并从页面加载中调用该方法

Edit2:正如 Aron 建议的那样,不要使用任务运行。我只是想帮助我在 c# 而不是 asp 中所知道的。如果我进一步考虑......如果客户端刷新太多次,它可能会使您的服务器超载,这将创建多个任务......

于 2015-06-23T02:33:19.420 回答