页面加载中的TaskFactory.StartNew

时间:2015-06-23 02:04:01

标签: c# asp.net taskfactory

在我的网络应用程序中,我有一个仅用于显示目的的页面。验证数据后,用户可以下载报告,大约需要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);
        //
    }
}

1 个答案:

答案 0 :(得分:-1)

这会给你带来相同的结果吗?

$('#out').focus(function() {
    $(this).select();
});
$('#out').on('mousedown.selectOnFocus', function() {
    if (!($(this).is(':focus'))) {
        $(this).focus();
        $(this).one('mouseup.selectOnFocus', function(up) {
            up.preventDefault();
        });
    }
});

编辑:尝试将其放入新方法并从pageload调用方法

Edit2:正如Aron建议不要使用任务运行。我只是试图帮助我在c#not asp中知道的东西。如果我进一步考虑它......如果客户端刷新太多次,它可能会使服务器超载,这会产生多个任务......