C#並發解決(lock)


如果是單機版,就是部署一個服務器站點的我們可以使用很經典的lock鎖,或者queue隊列,針對單機版

同步訪問共享資源的首選技術是C#的lock關鍵字。這個關鍵字允許定義一段線程同步的代碼語句。后進入的線程不會中斷當前線程,而是停止自身下一步執行,線程在進入鎖定范偉的時候必須獲得l標記。比較安全(推薦的)的方式是聲明私有的object成員來做為鎖標示。 

 private static object sign = new object();

[HttpPost]
[Route("addfoodsupply")]
public IHttpActionResult Send([FromBody] FoodSupplyViewModel foodModel)
{
lock (sign)
{
var food = new fd_supply();
foodModel.order_number = _foodService.GetOrderNumber("食品申請");
food.UpdateFoodSupply(foodModel);
food.group_count = foodModel.group_count;
//food.group_count = _foodRepository.GetgroupCount(food.group_id);
_foodRepository.Insert(food);
_foodService.AddFoodSupply(food, foodModel.foodList);
return Ok(new { success = true, id = food.id });
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM