我必须在Web API REST方法中添加显式线程吗?

B. *_*non 5 c# rest multithreading windows-ce asp.net-web-api

我创建了一些Web API REST方法,这些方法将由掌上电脑/ Windows CE客户端调用.因此,服务器可以被多个命中(当然,更喜欢它,问题是多少)请求同时.

REST方法是自动处理这个问题,还是我必须明确添加线程代码,以便一个客户端的请求不会干扰其他人?

dca*_*tro 10

不需要 - asp.net框架已经汇集了许多线程来同时处理大量请求.

传入的请求被排队,并且池化的线程轮流发出请求并处理它们.

你可以在这里找到更多关于asp.net如何处理这个的信息:http://www.codeproject.com/Articles/38501/Multi-Threading-in-ASP-NET

编辑

但是,您应该将CPU/IO密集型工作负载推迟到其他线程(最好使用TPL),以便asp.net管理的线程保持响应.

警告:如果在处理请求时确实生成新线程,请确保在从"REST方法"返回之前已完成所有线程.您可能会认为"我会尽快返回用户,并在后台保留一个线程,将数据保存到数据库中." 这很危险,主要是因为可以回收应用程序池,中止后台线程.在这里阅读更多内容:http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx

在所有线程完成之前不要返回.