成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Visual Studio出現死鎖是BUG?

開發 后端
本文將介紹的是一個Visual Studio中正常操作會發生的死鎖現象,權且可以算作一個BUG吧。

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

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

  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()

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

  現在實驗結束,大家來討論下這算不算是 VS 的一個 Bug?

  正方觀點:

  會影響正常調試,當然算 Bug

  只要導致程序非正常終止的都算 Bug

  反方觀點:

  是你自己調試方法不正確,不能怪 VS

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

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

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

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

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

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

原文鏈接:http://www.cnblogs.com/Aimeast/archive/2011/09/26/2192328.html

【編輯推薦】

  1. VS.NET 2010已經發布了beta2版本 新功能
  2. 初步了解Visual Studio 2010 Professional專業版
  3. Visual Studio 2010中使用MTLM管理測試工具
  4. Visual Studio 2010 SP1公測版已經發布
  5. Visual Studio 2010中敏捷開發流程模板的應用
責任編輯:彭凡 來源: 博客園
相關推薦

2011-03-01 08:47:40

Visual Stud

2009-08-12 09:47:39

Visual Stud

2021-07-04 22:29:12

MySQL死鎖云日志

2023-09-05 07:32:22

vscode開源故障

2013-11-14 01:09:35

微軟Visual StudVisual Stud

2011-02-24 10:05:26

Visual Stud

2009-12-02 09:43:38

Visual Stud

2024-02-27 12:42:38

開發前端

2019-09-19 08:00:00

Visual StudVisual Stud編程語言

2009-11-10 10:24:28

Visual Stud

2009-11-23 15:41:44

Visual Stud

2009-11-23 17:12:20

Visual Stud

2009-11-10 13:43:37

Visual Stud

2022-05-19 08:01:49

PostgreSQL數據庫

2009-11-06 13:25:35

Visual Stud

2009-11-10 12:44:01

Visual Stud

2010-02-22 16:43:33

Visual Stud

2009-11-12 12:42:35

Visual Stud

2010-12-14 09:15:50

Visual Stud

2009-12-03 16:21:50

Visual Stud
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕精品一区二区三区精品 | 久久久久久久久久久久久久国产 | 欧美一区二区三区在线观看 | 午夜精品久久久久久久久久久久 | 久久精品亚洲欧美日韩久久 | 欧美色综合 | 国产精品亚洲欧美日韩一区在线 | 中文字幕一区二区在线观看 | 一区二区三区精品在线 | 亚洲狠狠 | 福利视频网 | 国产精品99视频 | 日韩不卡一区二区三区 | 欧美一区二区在线播放 | 美女国产一区 | 成人h视频在线观看 | 少妇无套高潮一二三区 | 久久久999国产精品 中文字幕在线精品 | 日韩欧美在线观看 | 精品国产乱码一区二区三区a | 亚洲综合无码一区二区 | 91色视频在线观看 | 国产欧美一区二区在线观看 | 久久久久久a | 久久99精品久久久久久 | 激情国产在线 | 一本大道久久a久久精二百 欧洲一区二区三区 | 在线视频亚洲 | 久久综合久久久 | 久久99精品久久久 | 欧美九九 | www.99久久.com | 在线看片国产精品 | 中文字幕在线三区 | 国产精品自产拍 | 久久99精品久久久久久 | 五月婷婷激情网 | 国产日韩欧美中文字幕 | 久久久久欧美 | 久久成人精品视频 | 欧美日韩网站 |