有没有办法在后台将文件从 URL 下载到服务器?提交表单时,后台自动处理文件上传,用户无需等待文件上传。
在 Windows 应用程序中,有 BackgroundWorker 类。但是 ASP.NET 怎么样?
有没有办法在后台将文件从 URL 下载到服务器?提交表单时,后台自动处理文件上传,用户无需等待文件上传。
在 Windows 应用程序中,有 BackgroundWorker 类。但是 ASP.NET 怎么样?
这不是您希望在响应线程上运行的那种事情,因为它会延迟对用户的响应,直到可以下载和处理文件为止。它更适合在计算机(或 Azure 工作角色)上作为服务运行的不同线程,该线程将为您执行这些项目。
但是,如果您真的想要(或必须)通过 IIS/ASP.net 运行它,并且如果您不关心向用户返回任何内容,则可以在不同的线程中或通过调用的委托运行所有逻辑异步。有关异步运行委托的示例,请参阅此答案(从那里引用)。
private delegate void DoStuff(); //delegate for the action
protected void Button1_Click(object sender, EventArgs e)
{
//create the delegate
DoStuff myAction = new DoStuff(DownloadStuff);
//invoke it asynchronously, control passes to next statement
myAction.BeginInvoke(null, null);
}
private void DownloadStuff() {
// your functionality here - this can also go in a code library
}
有关如何使用委托(包括使用参数传递信息)的更多信息,请参阅MSDN 。