如何调用函数但不要等待完成 - ASP.NET

本文关键字:等待 NET ASP 何调用 调用 函数 | 更新日期: 2023-09-27 18:30:26

我有一个页面在进行一些文件操作,文件完成后,我需要上传到 Amazon S3。有时文件可能很大,因此提交时的用户需要等待太多时间。我怎样才能做出类似的东西

  1. 文件操作
  2. 完成后,我将文件名参数发送到某个函数
  3. 我不需要等待该功能,我想在上传完成之前使用响应重定向。

如何调用函数但不要等待完成 - ASP.NET

最简单的方法:

ThreadPool.QueueUserWorkItem(YourUploadMethod);

下面有一些评论对此有争议,所以我写了这个:

    protected void Page_Load(object sender, EventArgs e)
    {
        ThreadPool.QueueUserWorkItem(YourUploadMethod);
        Response.Redirect("http://google.com");
    }
    public void YourUploadMethod(object state)
    {
        Thread.Sleep(7000);
    }// breakpoint: I was redirected to google and then debugger stopped me here

您需要在不同的线程上启动该方法 - 因为您不必等待函数返回,因此不需要回调。

请参阅Thread类和Task类。