日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
VisualStudio出現(xiàn)死鎖是BUG?

首先要承認這個標題有那么一丁點標題黨,但這又不是完全的標題黨。使用“正確”的調(diào)試方法的確可以把 VS 給搞死鎖了。至于 VS 被死鎖了算不算 Bug,這個問題有待于商榷。不想吐槽,先看看怎么用“正確”的方法把 VS 搞死鎖。

玉屏ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

  首先要新建一個控制臺項目,完整的復(fù)制下列代碼:

 
 
 
 
  1.   using System.Threading;
  2.   namespace DeadlockVS
  3.   {
  4.   class Program
  5.   {
  6.   static object _obj = new object();
  7.   static void Main(string[] args)
  8.   {
  9.   Thread.CurrentThread.Name = "Main Thread";
  10.   ThreadStart ts = () =>
  11.   {
  12.   while (true)
  13.   {
  14.   lock (_obj)
  15.   Thread.Sleep(100);
  16.   Thread.Sleep(1);
  17.  }
  18.   };
  19.   for (int i = 0; i <2; i++)
  20.   new Thread(ts).Start();
  21.   Thread.Sleep(1000);
  22.  ts();
  23.   }
  24.   static int Get()
  25.   {
  26.   lock (_obj)
  27.   return 1;
  28.   }
  29.  }
  30.   }

  然后在正確的位置插上正確的斷點:

然后在即時窗口里面輸入:Get()

  現(xiàn)在你的 VS 有99.99%的概率會到達一種“死鎖”狀態(tài)(如果沒有被死鎖,恭喜你,你現(xiàn)在就可以去買雙色球,記得中獎了分大家一點)。IDE 在等待寄主進程返回結(jié)果,而寄主進程又需要等待其中的某一個線程釋放鎖,又因為處在調(diào)試狀態(tài),寄主進程沒辦法繼續(xù)執(zhí)行下一步代碼,也就無法釋放鎖,最終導(dǎo)致了一個死鎖的存在。雖然是死鎖,但是 VS 的 UI 并沒有被鎖死,所以我們現(xiàn)在***能做的事情就是結(jié)束調(diào)試。

  現(xiàn)在實驗結(jié)束,大家來討論下這算不算是 VS 的一個 Bug?

  正方觀點:

  會影響正常調(diào)試,當(dāng)然算 Bug

  只要導(dǎo)致程序非正常終止的都算 Bug

  反方觀點:

  是你自己調(diào)試方法不正確,不能怪 VS

  BUG本身是錯誤,是不按正常的理解執(zhí)行,不是說死鎖就是有BUG

  怎么才能解決這一“Bug”?

  從程序員自身角度考慮,只有增加自身編碼能力和調(diào)試能力

  從 VS 健壯角度考慮,可以使用沙箱模式,并檢測到在執(zhí)行一定時間還未得出結(jié)果后,主動退出。

  再看看維基百科是怎么定義 Bug 的:程序錯誤(英語:Bug),在程序設(shè)計中的術(shù)語,是指在軟件運行中因為程序本身有錯誤而造成的功能不正常、死機、數(shù)據(jù)丟失、非正常中斷等現(xiàn)象。http://zh.wikipedia.org/wiki/%E7%A8%8B%E5%BA%8F%E9%94%99%E8%AF%AF

  關(guān)于類似問題的探討,還有另外一篇博文《一個WPF和SL的嚴重BUG,能導(dǎo)致任何的寄主程序崩潰》。


標題名稱:VisualStudio出現(xiàn)死鎖是BUG?
網(wǎng)站URL:http://www.dlmjj.cn/article/dpigepd.html