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が提案したように、タスク実行を使用しないでください。私は、asp ではなく c# で知っていることを手伝おうとしていました。さらに考えてみると、クライアントが何度も更新をヒットすると、サーバーが過負荷になる可能性があり、複数のタスクが作成されます...

于 2015-06-23T02:33:19.420 に答える