C# 同時調一個接口並發問題,解決方法


項目中遇到一個問題,對方同時調用我的一個接口,導致返回的數據重復

1.簡單粗暴的解決方法,給出問題的接口加個鎖(互斥鎖 Lock)

      //鎖,解決並發問題
      private static object newObjectlock = new object();



/// <summary> /// 有問題的方法 /// </summary> /// <param name="stockInApply"></param> /// <returns></returns> public ResultServiceModel SendStockInApply(WCSStockInApplyServiceModel stockInApply) { lock (newObjectlock) //鎖 {
          //調用的接口 } }

  

作用:將會鎖住代碼塊的內容,並阻止其他線程進入該代碼塊,直到該代碼塊運行完成,釋放該鎖。

注意:定義的鎖對象應該是 私有的,靜態的,只讀的,引用類型的對象,這樣可以防止外部改變鎖對象

 


免責聲明!

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



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