我想知道这段代码是否是线程安全的, 这取自可数据编辑器c#API https://editor.datatables.net/manual/net/webapi
public class StaffController : ApiController
{
[Route("api/staff")]
[HttpGet]
[HttpPost]
public IHttpActionResult Staff()
{
var request = HttpContext.Current.Request;
var settings = Properties.Settings.Default;
using (var db = new Database(settings.DbType, settings.DbConnection))
{
var response = new Editor(Db, "staff")
.Model<StaffModel>()
.Process(request)
.Data();
return Json(response);
}
}
}
如果很少有线程通过更新进入Staff()
方法,会发生什么?它将如何影响数据库?
修改 我正在使用SQL数据库,数据库应该保存重要的共享数据,我担心它会在中间中断(就像2个线程更新相同数据时死锁一样,是否可能?)
答案 0 :(得分:0)
是的,这是线程安全的,框架通过排队来处理多个并发请求。对于每个请求,都会创建一个新的控制器实例。顺便说一下,你只是在阅读数据,所以不用担心:)