iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Visual Studio怎么实现死锁
  • 880
分享到

Visual Studio怎么实现死锁

2023-06-17 12:06:04 880人浏览 安东尼
摘要

这篇文章主要介绍“Visual Studio怎么实现死锁”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Visual Studio怎么实现死锁”文章能帮助大家解决问题。首先要承认这个标题有那么一丁点标

这篇文章主要介绍“Visual Studio怎么实现死”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Visual Studio怎么实现死锁”文章能帮助大家解决问题。

首先要承认这个标题有那么一丁点标题党,但这又不是完全的标题党。使用“正确”的调试方法的确可以把 VS 给搞死锁了。至于 VS 被死锁了算不算 Bug,这个问题有待于商榷。不想吐槽,先看看怎么用“正确”的方法把 VS 搞死锁。

首先要新建一个控制台项目,完整的复制下列代码:

using System.Threading;  namespace DeadlockVS  {  class Program  {  static object _obj = new object();  static void Main(string[] args)  {  Thread.CurrentThread.Name = "Main Thread";  ThreadStart ts = () =>  {  while (true)  {  lock (_obj)  Thread.Sleep(100);  Thread.Sleep(1);   }  };  for (int i = 0; i <2; i++)  new Thread(ts).Start();  Thread.Sleep(1000);   ts();  }  static int Get()  {  lock (_obj)  return 1;  }   }  }

然后在正确的位置插上正确的断点:

Visual Studio怎么实现死锁

然后在即时窗口里面输入:Get()

Visual Studio怎么实现死锁

现在你的 VS 有99.99%的概率会到达一种“死锁”状态(如果没有被死锁,恭喜你,你现在就可以去买双色球,记得中奖了分大家一点)。IDE 在等待寄主进程返回结果,而寄主进程又需要等待其中的某一个线程释放锁,又因为处在调试状态,寄主进程没办法继续执行下一步代码,也就无法释放锁,最终导致了一个死锁的存在。虽然是死锁,但是 VS 的 UI 并没有被锁死,所以我们现在***能做的事情就是结束调试。

现在实验结束,大家来讨论下这算不算是 VS 的一个 Bug?

正方观点:

会影响正常调试,当然算 Bug

只要导致程序非正常终止的都算 Bug

反方观点:

是你自己调试方法不正确,不能怪 VS

BUG本身是错误,是不按正常的理解执行,不是说死锁就是有BUG

怎么才能解决这一“Bug”?

程序员自身角度考虑,只有增加自身编码能力和调试能力

从 VS 健壮角度考虑,可以使用沙箱模式,并检测到在执行一定时间还未得出结果后,主动退出。

关于“Visual Studio怎么实现死锁”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Visual Studio怎么实现死锁

本文链接: https://www.lsjlt.com/news/288927.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Visual Studio怎么实现死锁
    这篇文章主要介绍“Visual Studio怎么实现死锁”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Visual Studio怎么实现死锁”文章能帮助大家解决问题。首先要承认这个标题有那么一丁点标...
    99+
    2023-06-17
  • Visual Studio中怎么实现XML编程
    这期内容当中小编将会给大家带来有关Visual Studio中怎么实现XML编程,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、XML编程可以提高Visual Studio平台中数据的处理能力。与其把X...
    99+
    2023-06-17
  • MySQL中怎么实现死锁
    这篇文章将为大家详细讲解有关MySQL中怎么实现死锁,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.了解锁等待与死锁出现锁等待或死锁的原因是访问数据库需要...
    99+
    2024-04-02
  • SQLServer中怎么实现死锁
    这篇文章将为大家详细讲解有关SQLServer中怎么实现死锁,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  SQLServer怎么死锁  压力测试的业务场...
    99+
    2024-04-02
  • Visual Studio怎么用
    这篇文章将为大家详细讲解有关Visual Studio怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Visual Studio菜单对话框命令与描述不同,具体取决于您现用的设置或版本。这些方法都是通过...
    99+
    2023-06-17
  • Golang怎么实现死锁?怎么避免?
    Golang 是一门高效、强类型、静态类型的编程语言,由 Google 开发,目的是为了解决一些类似于死锁等问题。虽然 Golang 实现死锁十分困难,但是在这篇文章中,我们将要探讨如何使用 Golang 实现死锁。什么是死锁?死锁指的是多...
    99+
    2023-05-14
  • 怎么安装visual studio
    小编给大家分享一下怎么安装visual studio,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!安装方法:1、下载安装包;2、双击下载程序,单击“继续”,完成程...
    99+
    2023-06-14
  • Xamarin XAML语言中Visual Studio中怎么实现XAML
    这篇文章给大家介绍Xamarin XAML语言中Visual Studio中怎么实现XAML,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Xamarin XAML语言教程Visual Studio中实现XAML预览每次...
    99+
    2023-06-04
  • 怎么解析Visual Studio IntelliSense
    这篇文章将为大家详细讲解有关怎么解析Visual Studio IntelliSense,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。学习Visual Studio时,你可能会遇到Visua...
    99+
    2023-06-17
  • Visual Studio Employee类怎么用
    这篇文章将为大家详细讲解有关Visual Studio Employee类怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。学习Visual Studio时,你可能会遇到Visual Studio Em...
    99+
    2023-06-17
  • 如何实现Visual Studio 2022的安装
    本篇文章为大家展示了如何实现Visual Studio 2022的安装,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、官网下载点击蓝色链接---->Visual Stud...
    99+
    2023-06-26
  • 如何实现Visual Studio 2008 Asp分析
    本篇文章给大家分享的是有关如何实现Visual Studio 2008 Asp分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。希望我对与visual studio 2008 ...
    99+
    2023-06-17
  • MySQL中怎么实现死锁与日志
    本篇文章给大家分享的是有关MySQL中怎么实现死锁与日志,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、Case1:部分数据更新失败某天渠道...
    99+
    2024-04-02
  • 怎么分析Visual Studio选项
    这篇文章给大家介绍怎么分析Visual Studio选项,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Visual Studio选项在某些情况还是非常使用,测试应该需要一个普通用户来进行,Visual Studio选项...
    99+
    2023-06-17
  • Visual Studio 中怎么利用Parallel类实现并行计算
    Visual Studio 中怎么利用Parallel类实现并行计算,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Parallel类Parallel类就是TPL...
    99+
    2023-06-17
  • 怎么深入分析Visual Studio
    这篇文章将为大家详细讲解有关怎么深入分析Visual Studio,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Visual Studio介绍能够简化 Web 开发工作,从而使Web 开发人...
    99+
    2023-06-17
  • Visual Studio 2008工具怎么用
    这篇文章主要介绍了Visual Studio 2008工具怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。由于关于Visual Studio 2008工具安装程序太多,此...
    99+
    2023-06-17
  • 怎么分析Visual Studio Ribbon Bar
    怎么分析Visual Studio Ribbon Bar,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在向大家详细介绍Visual Studio Ribbon Bar之前,首先...
    99+
    2023-06-17
  • 如何实现Visual Studio 2008环境说明
    如何实现Visual Studio 2008环境说明,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。开始对于Visual Studio 2008环境学习,首先碰到的就是环境的...
    99+
    2023-06-17
  • Mysql锁机制之行锁、表锁、死锁的实现
    目录一、Mysql锁是什么?锁有哪些类别?二、行锁和表锁的区别三、InnoDB死锁概念和死锁案例死锁场景一之select for update:死锁场景二之两个update...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作