自从使用Visual Studio 2013之后,多次遇到这个恼人的“Waiting for a required operation to complete...”问题。

问题发生于在Visual Studio 2013中复制/粘贴的时候。问题发生后,Visual Studio 2013停止响应,状态栏一直显示“Waiting for a required operation to complete...”,只能通过任务管理器强制结束Visual Studio进程,带来的后果是——所有未保存的代码全部丢失

本来以为是Visual Studio 2013带来的新问题,后来在MSDN中发现原来这是一个历史悠久的问题,至少在Visual Studio 2008时代就出现了,详见:http://msdn.microsoft.com/en-us/library/8037k9sb(v=vs.90).aspx,而更值得关注的是这篇MSDN内容下面的评论:

Why on earth is the message so vague??
This is another instance of a longstanding problem with progress and error messages that Microsoft seems totally blind to. They say things like "the system cannot find the file specified", or "Visual Studio is waiting for a required operation to complete": with a tiny bit more effort , the messages could refer specifically to what is happening (e.g. "the system cannot find the file specified with name abcdef.dll" and this would make the problem so much easier to solve! However, despite having pointed out this problem several years ago in feedback, the problems are still there, even in code written recently...

这里说“历史悠久的问题”,不是指引发“Waiting for a required operation to complete...”的原因,而是这个提示信息本身——提示信息太笼统,对定位问题一点帮助没有。上面的评论抱怨就是这个。

MSDN中提到的Visual Studio 2008中的这个问题是防病毒软件引起的,但我在Visual Studio 2013中遇到的问题不是这个原因,因为电脑上根本没有安装防病毒软件。

stackoverflow上了解这个问题更多是某些VS插件(Add-in)引起的:

It is a very generic diagnostic. It is triggered by COM, heavily used in Visual Studio to implement extensibility. The underlying trigger is the IMessageFilter interface. The trigger occurs when COM marshals a method call to another thread and that call doesn't complete for 60 seconds.

There's little value in the actual notification, it is telling you something you already know. By the time 60 seconds have passed, you typically already have noticed things are not working well. Short from the wee bit of useful knowledge that Visual Studio isn't actually completely dead. The call however has to complete before VS gets usable again. There's little you can do but tap your foot and wait.

This problem is almost always caused by an add-in. Resharper is certainly a good candidate. You find the trouble-maker by disabling the add-ins one-by-one until the problem disappears. It is the kind of problem that's common with new versions of Visual Studio, it takes the add-in vendors a while to get the bugs and hangups ironed out. Contact the vendor for support and in general look for updates that may solve the issue.

而我的电脑上的VS2013只安装了两个插件——Git Extensions与TestDriven.Net。

如果真是VS插件引起的,目前只能怀疑Git Extensions,这有待进一步验证。

【相关链接】

奇怪的Visual Studio 2013停止响应问题

Visual Studio的“Waiting for a required operation to complete...”问题的更多相关文章

  1. 安装python 第三方库遇到的安装问题 microsoft visual studio c++ 10.0 is required,Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?

    问题一: microsoft visual studio c++ 10.0 is required 安装scrapy时候出现需要vc c++ 10,有时安装其他也会有. 解决方法:安装vc 2010, ...

  2. 奇怪的Visual Studio 2013停止响应问题

    昨天开始遭遇这个问题,今天再次遭遇. 疑似问题发生在写代码的窗口中复制/粘贴时(有待进一步确认触发条件),突然停止响应,出现下面的对话框: 对话框中的文字为: Waiting for a requir ...

  3. [转]Cordova + Ionic in Visual Studio - 101 Tutorial [Part I]

    本文转自:http://binarylies.ghost.io/cordova-ionic-in-visual-studio/ Hi everyone, I thought about lending ...

  4. Try out the latest C++ compiler toolset without waiting for the next update of Visual Studio

    Updated 22/Apr/2016: The NuGet package is now being uploaded daily. The payload doesn’t change every ...

  5. Working with Data » 使用Visual Studio开发ASP.NET Core MVC and Entity Framework Core初学者教程

    原文地址:https://docs.asp.net/en/latest/data/ef-mvc/intro.html The Contoso University sample web applica ...

  6. .NET Memory Allocation Profiling with Visual Studio 2012

    .NET Memory Allocation Profiling with Visual Studio 2012 This post was written by Stephen Toub, a fr ...

  7. 如何解决Visual Studio调试Debug很卡很慢

    http://brightguo.com/make-debugging-faster-with-visual-studio/ Have you ever been frustrated by slow ...

  8. C# on Visual Studio Code

    installation Download .NET Core SDK installer and install it. https://www.microsoft.com/net/download ...

  9. [转]Getting Start With Node.JS Tools For Visual Studio

    本文转自:http://www.c-sharpcorner.com/UploadFile/g_arora/getting-started-with-node-js-tools-for-visual-s ...

随机推荐

  1. 用X264编码以后的H264数据

    输入的数据准备好了,编码后的数据都在x264_nal_t的数组.我这里设置的参数是Baseline Profile,所以编码后没有B帧,将编码后的数据保存分析后发现,第一次编码的时候会有4个NAl,分 ...

  2. Javascript 严格模式 strict mode(转)

    一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. ...

  3. SSL双向认证Java实现 Tomcat篇

    双向验证,在客户机连接服务器时,客户机验证服务器的证书,服务器验证客户机的证书,链接双方都要对彼此的数字证书进行验证,保证这是经过授权的才能够连接. 1. 生成服务器端的keystore和trusts ...

  4. Android Studio怎样查看资源或者函数在哪些类中被引用

    很多人在做完Keymap匹配到Eclispe快捷键后,发现查看资源或者函数在哪些地方被引用的快捷键"Ctrl+Shift+G"不灵 了.你选中某个函数后,使用这个快捷键.发现仅仅会 ...

  5. Java基础--常用IO流使用实例

    读取文本文件: private static void ioDemo1() { try { FileReader fileReader = new FileReader("C:\\Users ...

  6. 【scrapy】相关

    http://www.cnblogs.com/mophee/archive/2009/03/12/1409562.html css选择器中的空格 http://www.crummy.com/softw ...

  7. Java 9的日期时间格式化趋近Unicode区域设置标准

        1.JDK-8148947,DataTimeFormatter的模式字母“g”:正如在LDML中定义的,字母“g”指代一个“简化儒略日期”,简化儒略日期与正常儒略日期的差别在于:(1)简化儒略 ...

  8. Zookeeper安装和配置详解

    http://coolxing.iteye.com/blog/1871009 Zookeeper是什么 http://www.cnblogs.com/yuyijq/p/3391945.html Zoo ...

  9. Oracle会话及连接数优化

    一.改动Oracle会话及最大连接数 1.查看最大连接数 SQL> show parameter processes; NAME                                 ...

  10. vue实现图片点击放大

    用的vue-cli开发的项目,下面是具体实现代码 子组件: <template> <!-- 过渡动画 --> <transition name="fade&qu ...