c# - asp.net上的多线程

标签 c# asp.net multithreading

我没有为 asp.net 使用多线程。我有一个将大型临时文件上传到文件夹的 Web 应用程序。我想获取该临时文件并在上传后用它做一些其他事情。我可以在用户不再访问网站的情况下在另一个线程上完成这项工作吗?感谢您提供任何帮助或建议。

1.用户发布大文件 2.上传临时文件到服务器 3.上传完成后。我想运行另一个无需任何用户迭代即可运行但由用户触发的线程/工作程序。

void uploading(){
//Uploading file To server
}
void Submitclick(){
Start a Thread 
Thread thread = new Thread(DoThreadWork);// does the user still need to be logged in?
Send to another page
}
void DoThreadWork(){Do this in background}

最佳答案

这绝对有可能,我在 ASP.NET 中使用了相当多的后台线程来做一些时髦的事情。如果您可以完全控制服务器,那么在单独的应用程序或 Windows 服务中运行后台代码可能会更优雅。

让您的 IIS 应用仅处理响应 Web 请求是一种更好的关注点分离,它并没有为此做好准备。

还有一个警告,如果您在 ASP.NET 2.0 中有一个后台线程并且它有一个未处理的异常,则默认设置是重置应用程序池。

更多信息在这里:http://blogs.msdn.com/b/tess/archive/2006/04/27/584927.aspx

//3 个反对票?

听着,总不能避免在后台线程中运行某些东西。我在几种情况下遇到过这个问题:

  • 我曾在一家对软件持不合理态度的公司工作 我们不允许部署单独的应用程序来处理 后台处理。我主张使用 Windows 服务,但是 否决并告诉在后台线程中实现它。明显地 我从那家公司搬到了一个更健康的环境,但那是 现实是你必须处理不合理的情况 有时。
  • 如果您在托管环境中,您并不总是可以选择卸载到单独的进程。

问题是这是否可能。我正在回答这个问题。

关于c# - asp.net上的多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10293668/

相关文章:

c# - 试图删除文件夹中的所有文件,但在 c# 中删除 2 个选定文件

c# - 错误 : "The node to be inserted is from a different document context"

c# - Modbus 自定义消息和子功能(NModbus、TCP、子功能)

c# - 在 ASP.NET C# 中直接打印 Crystal Report

c# - 我可以使用 JS 检索客户端的内部 IP 地址吗?

c# - 检查 Flags Enum 是否包含所有字符串

jquery - 如何覆盖页面某些部分的默认 Bootstrap 样式

asp.net - 多线程接受值并返回值

java - 了解同步的使用

java - Java 同步(锁定、条件)的奇怪行为