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

我创建了一些将由掌上电脑/ Windows CE客户端调用的Web API REST方法。 因此,服务器可能同时受到多个(好的,更像是它,问题是多少)请求。

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

不需要 – asp.net框架已经汇集了许multithreading来同时处理大量请求。

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

你可以在这里找到更多关于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

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

正如dcastro所说, 通常你不必担心请求互相干扰。

但是,如果您使用的是全局变量或单实例类,那么很可能会出现线程问题。 只是远离那些东西,你会没事的。