C# web服务中的多线程技术

C# web服务中的多线程技术,c#,multithreading,web-services,C#,Multithreading,Web Services,是否可以在web服务中创建一个具有多个线程的函数,一个线程向用户返回值,另一个线程继续处理事务?我以前从未使用过任何多线程,而且似乎我也可以通过异步运行事务来实现。尚未编写任何代码。在我开始编码之前,尝试看看这是否可行。尽管您可以启动线程等,但与任何其他.NET应用程序一样,您必须考虑您的操作环境 任何长时间运行的进程都应该真正地交给另一个进程,比如Windows服务,因为web服务器工作进程可以而且确实会被回收,线程也会随之被回收。您还绑定了可用于进一步向web应用程序请求服务的线程 关于Pa

是否可以在web服务中创建一个具有多个线程的函数,一个线程向用户返回值,另一个线程继续处理事务?我以前从未使用过任何多线程,而且似乎我也可以通过异步运行事务来实现。尚未编写任何代码。在我开始编码之前,尝试看看这是否可行。

尽管您可以启动线程等,但与任何其他.NET应用程序一样,您必须考虑您的操作环境

任何长时间运行的进程都应该真正地交给另一个进程,比如Windows服务,因为web服务器工作进程可以而且确实会被回收,线程也会随之被回收。您还绑定了可用于进一步向web应用程序请求服务的线程


关于Paul Abbot所说的,原则上,如果您有一种方法可以将某种工作ID返回给客户端,您可以在另一个请求中轮询处理状态,这可以应用于同一进程内或外部服务中的进程外。

尽管您可以触发线程等,与任何其他.NET应用程序一样,您必须考虑您的操作环境

任何长时间运行的进程都应该真正地交给另一个进程,比如Windows服务,因为web服务器工作进程可以而且确实会被回收,线程也会随之被回收。您还绑定了可用于进一步向web应用程序请求服务的线程


关于Paul Abbot所说的,原则上,如果你有办法将某种工作ID返回给客户端,你可以在另一个请求中轮询处理状态,这可以应用于同一进程内或外部服务的进程外。

通常,你会将长时间运行的任务交给Windows服务,或者类似的东西。建议使用。如果事务处理失败怎么办?现在通知客户已经太迟了,因为你已经回复了。一般来说,在IIS中放置长时间运行的进程是个坏主意。你是指WCF服务,还是传统的ASMX服务?是的,这在本问答中已经讨论过了;[您似乎试图使用MOA而不是web服务通常,您会将长时间运行的任务移交给Windows服务或类似的服务。建议使用。如果事务处理失败会发生什么情况?通知客户端太晚了,因为您已经响应了。一般来说,将长时间运行的进程IIS中的SSE。你是指WCF服务,还是传统的ASMX服务?是的,这一点在本问答中已经讨论过了;[看起来你正在尝试使用MOA而不是web服务