自从使用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. e552. 取Applet的参数

    An applet can be configured through the use of applet parameters. For example, the contents for a ne ...

  2. UIView的几个枚举定义

    UIView是iOS开发最主要的视图,非常多控件都是继承它,掌握当中的几个基本枚举定义,有利益理解视图的载入和參数差别. 一.UIViewAnimationCurve UIView的基本动画变化规律 ...

  3. (转载)UTF-8和GBK的编码方式的部分知识:重要

    GBK的文字编码是双字节来表示的,即不论中.英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1. 至于UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节) ...

  4. CentOS系统中的passwd命令实用技巧小结

    这篇文章主要介绍了Linux系统中的passwd命令实用技巧小结,是Linux入门学习中的基础知识,需要的朋友可以参考下   先来回顾一下passwd命令的基本用法: Linux passwd命令用来 ...

  5. 教你如何架设linux邮件服务器postfix

    检查linux是否有安装postfix和dovecot 检查命令如下: Rpm  -qa |grep  postfix; Rpm –qa |grep dovecot; 如果没有显示任何数据,表明没有安 ...

  6. window用Xmanager4.0的Xstart连接linux远程桌面

    安装包: xorg-x11-xauth xterm.x86_64 0:253-1.el6 Execute command path:/usr/bin/xterm Xstart连接Linux远程桌面有一 ...

  7. Buff系统

    BUFF状态可以通过游戏道具.使用技能.被攻击技能.NPC.宠物等等实现.BUFF状态,有很多技能在释放后,会对目标产生一定时间的额外影响,这些影响有的是增益的,有的是减免的.比如法师的“熔岩地”,会 ...

  8. 理解BSTR数据类型 神奇的BSTR

    理解BSTR数据类型 神奇的BSTR - 深蓝的日志 - 网易博客 http://blog.163.com/pugood@126/blog/static/13441759320091111115264 ...

  9. 记录下自己常用的全框架HTML代码

    纯粹记录下,没有任何意义. 也不推荐使用 <frameset rows="> <frame src=" name="topFrame" scr ...

  10. Extjs 自定义控件

    // JavaScript Document Ext.namespace('CRM.Panels'); CRM.Panels.UserDetail = Ext.extend(Ext.Panel,{ w ...