Was ist das "Warten auf Hintergrund" in Visual Studio 2012?

96

Gelegentlich, aber ziemlich oft, ohne ersichtlichen Grund, wird VS 2012 mit einem Dialog abgeschlossen, der besagt: "Warten auf den Abschluss einer Hintergrundoperation". Dies kann beispielsweise während einer einfachen Bearbeitung des alten Codes geschehen, nicht beim expliziten Aufrufen eines IDE-Befehls.

Was verursacht das und kann ich etwas dagegen tun?

Ich verwende ReSharper 7 und bin nicht der einzige, von dem ich weiß, dass er dies erlebt.

ProfK
quelle
4
Dies ist ein bisschen links, daher wird eher ein Kommentar als eine Antwort abgegeben. Wenn ich dies erhalte, liegt dies normalerweise daran, dass ich ein RDC-Fenster für einen anderen Computer geöffnet habe und kürzlich etwas in diesem RDC-Fenster in die Zwischenablage eingefügt habe (über a Kopieren / Ausschneiden) dann werden Sie manchmal feststellen, dass es gerade versucht, es auf meinen lokalen Computer zu übertragen ... und daher wartet mein VS darauf, dass dies abgeschlossen ist. Das Schließen des RDC sortiert es normalerweise
Freifaller
2
Danke @freefaller, aber ich habe nie aktive Remoteverbindungen.
ProfK
3
Haben Sie das genaue Problem! Es ist wirklich sehr, sehr ärgerlich ... könnten Sie die Ursache des Problems finden? (PS Ich habe kein ReSharper)
Mahmoud Moravej
1
Ich habe auch das Problem in VS2010, daher ist dies kein Vs2012-Problem. Für mich passiert es, wenn ich eine Lösung öffne, in der viele Quelldateien geöffnet sind. Nach dem Beenden des VS mit ProcExp öffnet VS nicht alle Dateien und das Problem ist behoben.
magicandre1981
7
Es gibt Zeiten, in denen ich einfach zum nächstgelegenen Microsoft-Büro gehen und dafür ein Massaker in Texas durchführen möchte. Ich schreibe friedlich einen Code, Gedanken gehen mir durch den Kopf, wenn BAM! ein Schlag ins Gesicht "Hintergrundoperationen, duh".
Filip Vondrášek

Antworten:

62

Ich hatte das gleiche Problem, insbesondere bei cshtml-Seiten. Ich habe diese Seite gefunden: https://devblogs.microsoft.com/aspnet/visual-studio-11-beta-razor-editor-issue-workaround , die vorschlägt, die Einrückungsoption unter Extras> Optionen> Texteditor> HTML> Tab in zu ändern Smart statt Block . In meinem Fall war es bereits auf Smart eingestellt und durch Zurücksetzen auf Block wurde das Problem behoben.

Update: Ich habe mich geirrt, das hat den Dialog nicht repariert, sondern nur verzögert, bis ich ihn kopiert oder eingefügt habe. Was schließlich für mich funktioniert hat, war, zu Extras> Import- und Exporteinstellungen ...> Alle Einstellungen zurücksetzen zu gehen .

Möglicherweise verwandte Frage: Visual Studios 2010 - Asp.net MVC 4 Beta - lange Verzögerungen beim Einfügen und häufiges Abstürzen

Walter
quelle
26
Ich habe gestimmt und werde einen Kommentar abgeben. Das Update in dieser Antwort löste das Problem mit dem Kopieren / Einfügen für mich mit VS2012 - ein Problem, mit dem ich über zwei Wochen lang zu kämpfen hatte, um es herauszufinden. Beachten Sie, dass ich im letzten Teil des Assistenten zum Zurücksetzen aller Einstellungen "Webentwicklung (nur Code)" ausgewählt habe. BITTE BEANTRAGEN SIE, DASS DIESE ANTWORT BESSER AUF SUCHEN ZEIGT.
REMESQ
2
Was Remesq sagte, funktionierte für mich. Es löste das Problem sofort. Vielen Dank.
Draconis
1
+1 Für mich konnte ich keine Aspx-Dateien einfügen, ohne dass die Meldung "Warten auf Hintergrund ..." angezeigt wurde. Gehen Sie zu Extras> Einstellungen importieren und exportieren> Alle Einstellungen zurücksetzen und wählen Sie schließlich Webentwicklung, wenn Sie gefragt werden, welche Sammlung zurückgesetzt werden soll. Dies wurde für mich behoben. Danke dir.
Anthony Walsh
Das Zurücksetzen aller Einstellungen funktioniert für eine Weile, aber hin und wieder habe ich immer noch dieses nervige modale Fensterargument !!!!
Coffekid
2
+1 Mit Resharper 7 wurde das Problem durch Ändern der Option Extras> Optionen> Texteditor> HTML-Einstellung zum Blockieren von "intelligent" behoben
Tahbaza
32

Es ist eine sehr allgemeine Diagnose. Es wird von COM ausgelöst, das in Visual Studio häufig zur Implementierung der Erweiterbarkeit verwendet wird. Der zugrunde liegende Trigger ist die IMessageFilter-Schnittstelle. Der Trigger tritt auf, wenn COM einen Methodenaufruf an einen anderen Thread marshallt und dieser Aufruf 60 Sekunden lang nicht abgeschlossen wird.

Die eigentliche Benachrichtigung hat wenig Wert. Sie sagt Ihnen etwas, das Sie bereits wissen. Nach Ablauf von 60 Sekunden haben Sie normalerweise bereits bemerkt, dass die Dinge nicht gut funktionieren. Kurz von dem kleinen nützlichen Wissen, dass Visual Studio nicht wirklich vollständig tot ist. Der Anruf muss jedoch abgeschlossen sein, bevor VS wieder verwendet werden kann. Sie können nur auf Ihren Fuß tippen und warten.

Dieses Problem wird fast immer durch ein Add-In verursacht. Resharper ist sicherlich ein guter Kandidat. Sie finden den Problemlöser, indem Sie die Add-Ins einzeln deaktivieren, bis das Problem behoben ist. Dies ist die Art von Problem, die bei neuen Versionen von Visual Studio häufig auftritt. Die Add-In-Anbieter benötigen eine Weile, um die Fehler und Probleme zu beheben. Wenden Sie sich an den Anbieter, um Unterstützung zu erhalten, und suchen Sie im Allgemeinen nach Updates, mit denen das Problem möglicherweise behoben werden kann.

Hans Passant
quelle
7

Das Löschen der "suo" -Datei von Solutions hat bei mir funktioniert.

chris.rickard
quelle
1
Ich bin in diesen Zustand gekommen, nachdem ich viele Male zwischen Zweigen in Git gewechselt habe. Das Löschen der .suo-Datei für das Projekt hat es auch für mich
getan
6

Ich hatte das gleiche Problem und in meinem Fall war es DevExpress.

Es schien Visual Studio jedes Mal zu hängen, wenn ich eine Kopier- oder Ausschneideoperation durchführte und die folgende Meldung aufrief:

"Warten auf den Abschluss einer Hintergrundoperation".

Es stellte sich heraus, dass es tatsächlich eine einmalige Aufgabe im Hintergrund erledigte und es wirklich eine Weile dauerte, bis sie erledigt war (über 5 Minuten).

Wenn ich normal gewartet hätte, hätte es vielleicht verschwinden können, aber was schließlich behoben wurde, war, die Toolbox in Sichtweite zu bringen (versteckt / zusammengebrochen), was wiederum ein Fenster öffnete, in dem stand:

"Hinzufügen von [SomeDevExpressAssemblyNameHere] .dll"

Dies wurde ständig mit dem Namen jeder DLL aktualisiert, die DevExpress zum Auffüllen der Symbolleiste benötigt.

Auf diese Weise konnte ich den Fortschritt des Vorgangs sehen und nach Abschluss konnte ich das Kopieren / Ausschneiden und Einfügen wie gewohnt erneut verwenden.

Hoffe das hilft.

Ric Tokyo
quelle
Dies geschah mir, nachdem ich eine neue CodeRush-Version installiert und dann die alte deinstalliert hatte. Nach einfachem Warten (eine lange) Zeit beendete VS.Net einfach alles, was es tat.
CodingBarfield
Grrrrr - das war auch mein Problem, meine Toolbox war versteckt, so dass ich nicht sehen konnte, was los war.
Fergal Moran
Ein anderer DevExpress-Benutzer hier tut dies nach jedem Upgrade von DevExpress. Dauert ca. 5 Minuten und ist dann endgültig behoben.
KingCronus
5

Für mich bestand das Update darin, Web Essentials 2012 auf Version 1.8 zu aktualisieren.

Die problematische Version war 1.6

römisch
quelle
Ich versuche, WebEssentials zu deaktivieren, aber das Problem besteht weiterhin. Wenn nicht kristallisiert, ist das Problem gelöst.
Riccardo Bassilichi
5

Extras> Optionen> Texteditor> HTML> Registerkarten -> Identifizieren -> Keine Einstellungen haben dieses Problem für mich gelöst.

Jits
quelle
1
Das Ändern in "Blockieren" behebt auch das Problem.
Jenny O'Reilly
3

Das hat es für mich behoben:

Extras> Optionen> Texteditor> HTML> Verschiedenes

Deaktivieren Sie die Option "Automatische ID-Elemente beim Einfügen in die Quellansicht".

Ich werde ein Update veröffentlichen, wenn das Problem erneut auftritt.

TheTim
quelle
2

Ich hatte dieses Problem für ein paar Tage, habe versucht, mein Visual Studio 2012 Ultimate Edition SP3 zu deinstallieren und neu zu installieren ... funktionierte immer noch nicht. Also habe ich alle meine Erweiterungen gelöscht (Git-Tools für VS 2012 und Nuget Package Downloader), mein VS neu gestartet und es hat wieder gut funktioniert! Hoffe, es funktioniert !

Viel Glück!

Lucas MCKENNA
quelle
1

Ich habe dieses Problem beim Ausführen von Visual Studio in einer virtuellen Maschine festgestellt - Virtual Box 4.2 unter Mac OS X Mountain Lion, das eine neue Windows 7-Installation hostet, auf der nur Visual Studio installiert ist. Ich fand, dass das Problem durch 2 verschiedene Probleme verursacht wurde.

Erstens befand sich mein Projekt in einem Ordner, der vom Host-Betriebssystem freigegeben wurde. Mit anderen Worten, auf dem Windows-Gast wurde mein Projekt auf einem Netzwerklaufwerk angezeigt. Das Öffnen des Projekts in Visual Studio von einem Netzwerklaufwerk aus schien dieses Problem zu verursachen, da das Problem behoben wurde, als ich das Projekt auf das Laufwerk C der Windows-VM kopierte und es in Visual Studio von der Kopie auf dem Laufwerk C öffnete.

Zweitens trat das Problem erneut auf, als die Festplatte der virtuellen Maschine voll wurde. Ich hatte ungefähr 1 GB freien Speicherplatz auf der Festplatte. Als ich die Festplatte der virtuellen Maschine vergrößerte, verschwand dieses Problem.

Machaba
quelle
1

Gerade reproduziert ähnliches Problem mit Codemaid Add-On. Fand dieses Gespräch :

In dieser Ausgabe sind viele Details enthalten. Um das Problem noch einmal zusammenzufassen, hat die VS2012 C ++ - API ein Deadlock-Problem eingeführt, wenn auf die API über einen UI-Thread zugegriffen wird (z. B. einen WPF-Kontext wie Spade). Es war kein Problem in VS2010, und Microsoft hat es für VS2013 behoben, aber es wird nicht für VS2012 gepatcht.

Scheint darauf hinzudeuten, dass ein Fix (für Codemaid) kommen sollte:

Bitte behalten Sie diesen Thread im Auge, um das Problem fortlaufend zu lösen. Es knüpft an dieses größere Umschreiben an, daher habe ich darauf aufgebaut, indem ich zuerst viele Komponententests hinzugefügt habe, um sicherzustellen, dass die Funktionalität nach den Änderungen konsistent bleibt.

dtmland
quelle
1
Es wurde jetzt behoben (Version 0.7.0). Dies war die Ursache für meine Version davon, also danke!
Dlanod
1

Für mich schien es mit der Rasierersyntax zu tun zu haben, da ich sie nur in einer bestimmten Datei hatte.

Wenn ich zum Beispiel den folgenden Code in eine Zeile setze, hatte ich das beschriebene Problem.

@section BodyClassName {note}

Aber als die schließende Klammer in die nächste Zeile gesetzt wurde, verschwand das Problem

@section BodyClassName {note
}

Mit freundlichen Grüßen

Stijn

Stijn Liesenborghs
quelle
1

Weit davon entfernt, eine ideale Lösung zu sein, aber bitte versuchen Sie, Visual Studio im Administratormodus auszuführen. Ich habe praktisch alles versucht, und dies war das einzige, was für mich funktioniert hat

Quade
quelle
1

Öffnen Sie Visual Studio, erstellen Sie eine neue MVC-Anwendung, schließen Sie die neue Anwendung, öffnen Sie die alte Anwendung und es funktioniert!

abiNerd
quelle
Das gleiche Problem wie bei OP kam aus heiterem Himmel. VS2013 im WebForms-Projekt. Ihr Verfahren hat das Problem behoben.
secretwep
1

Überprüfen Sie, ob IIS oder ein anderer Prozess (möglicherweise BizTalk) Ihre DLLs / Referenzen
sperrt. Beenden / stoppen Sie IIS oder den anderen Prozess, falls dies der Fall ist

Häuser
quelle
0

Ich glaube, ich habe einen Hinweis gefunden! Alles ist zu dcomcnfg.exe beendet!

Öffne es und gehe unter folgendem Pfad:

Komponentendienste> Computer> Mein Computer> Dcom-Konfiguration

Nach dem Klicken auf dcom werden viele Warnungen angezeigt, die von der Anzahl der Komponenten auf Ihrem PC abhängen.

Klicken Sie in jedem Meldungsfeld auf Ja, um den richtigen Datensatz für dcom hinzuzufügen.

Senamas
quelle
1
Wie haben Sie es auf DCOM eingegrenzt? Auf welchem ​​Betriebssystem bist du? Auf meiner Win 7 x64-Box werden keine Warnungen angezeigt.
Mrchief
0

Ich fand, dass VS auch Pakete während der "Hintergrundoperation" lädt. Sie können nicht benötigte Erweiterungen entfernen, um den Vorgang zu beschleunigen.

Libor
quelle
0

Ich habe es vor Wochen behoben, nachdem ich TeamViewer 8 Clipboard Sync deaktiviert habe! Jetzt erscheint es ohne Grund wieder, also habe ich versucht, alle Einstellungen zurückzusetzen und es hat bei mir funktioniert.

Afshin
quelle
0

Für mich war es das Resharper-Addon, das einen Dialog öffnete, der nicht angezeigt wurde. Ich habe das Dialogsymbol nur im Menü mit versteckten Symbolen in der Taskleiste gefunden. Als ich den Dialog loswurde, kehrte Visual Studio sofort zum Normalzustand zurück.

JanBrus
quelle