久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如果鎖定的對象內部發生異常,它會保持鎖定狀

Does a locked object stay locked if an exception occurs inside it?(如果鎖定的對象內部發生異常,它會保持鎖定狀態嗎?)
本文介紹了如果鎖定的對象內部發生異常,它會保持鎖定狀態嗎?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

在 c# 線程應用程序中,如果我要鎖定一個對象,假設是一個隊列,如果發生異常,該對象會保持鎖定狀態嗎?偽代碼如下:

In a c# threading app, if I were to lock an object, let us say a queue, and if an exception occurs, will the object stay locked? Here is the pseudo-code:

int ii;
lock(MyQueue)
{
   MyClass LclClass = (MyClass)MyQueue.Dequeue();
   try
   {
      ii = int.parse(LclClass.SomeString);
   }
   catch
   {
     MessageBox.Show("Error parsing string");
   }
}

據我了解,catch 之后的代碼不會執行 - 但我一直想知道鎖是否會被釋放.

As I understand it, code after the catch doesn't execute - but I have been wondering if the lock will be freed.

推薦答案

First;你考慮過 TryParse 嗎?

First; have you considered TryParse?

in li;
if(int.TryParse(LclClass.SomeString, out li)) {
    // li is now assigned
} else {
    // input string is dodgy
}

鎖會被釋放有兩個原因;首先,lock本質上是:

The lock will be released for 2 reasons; first, lock is essentially:

Monitor.Enter(lockObj);
try {
  // ...
} finally {
    Monitor.Exit(lockObj);
}

第二;您捕獲并且不重新拋出內部異常,因此 lock 實際上永遠不會看到異常.當然,您在 MessageBox 的持續時間內持有鎖,這可能是個問題.

Second; you catch and don't re-throw the inner exception, so the lock never actually sees an exception. Of course, you are holding the lock for the duration of a MessageBox, which might be a problem.

因此它將在除最致命的災難性不可恢復異常之外的所有異常中釋放.

So it will be released in all but the most fatal catastrophic unrecoverable exceptions.

這篇關于如果鎖定的對象內部發生異常,它會保持鎖定狀態嗎?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Is there a way to know if someone has bookmarked your website?(有沒有辦法知道是否有人為您的網站添加了書簽?)
Use of Different .Net Languages?(使用不同的 .Net 語言?)
Is there a C# library that will perform the Excel NORMINV function?(是否有執行 Excel NORMINV 函數的 C# 庫?)
Determining an #39;active#39; user count of an ASP.NET site(確定 ASP.NET 站點的“活動用戶數)
Select x random elements from a weighted list in C# (without replacement)(從 C# 中的加權列表中選擇 x 個隨機元素(無需替換))
Best way to keep track of current online users(跟蹤當前在線用戶的最佳方式)
主站蜘蛛池模板: 国产成人免费视频网站高清观看视频 | av网站免费在线观看 | 欧美国产一区二区三区 | 激情网站在线观看 | 亚洲aⅴ | 北条麻妃av一区二区三区 | www网站在线观看 | 黄色a级一级片 | 91素人 | 久久99精品久久久久久琪琪 | 国产h在线 | 羞羞的视频在线 | 人和拘一级毛片c | 亚洲一区二区久久 | 精品1区| 一级黄色片在线看 | 欧美久久精品一级黑人c片 91免费在线视频 | 中文字幕亚洲视频 | 国产精品99久久久久久www | 国产成人精品视频在线观看 | 中文字幕亚洲一区 | 日本一区二区三区四区 | 91精品中文字幕一区二区三区 | 黄网站免费在线看 | 日韩欧美专区 | 999观看免费高清www | 亚洲欧美一区二区三区情侣bbw | 国产区在线观看 | 国产一区二区三区色淫影院 | 在线免费看91 | 一级片网站视频 | 韩国主播午夜大尺度福利 | 久久久久国产 | 国户精品久久久久久久久久久不卡 | 亚洲女人天堂网 | 久久高清 | 国产成人精品av | 免费亚洲成人 | 999视频在线播放 | 国产精品999 | 天天操天天射天天舔 |