Co to jest „Oczekiwanie na operację w tle” w programie Visual Studio 2012?

96

Sporadycznie, ale dość często, bez wyraźnego powodu, VS 2012 zamyka się z komunikatem „Oczekiwanie na zakończenie operacji w tle”. Np. Może się to zdarzyć podczas zwykłej edycji starego kodu, a nie przy jawnym wywołaniu jakiegokolwiek polecenia IDE.

Co to powoduje i czy mogę coś z tym zrobić?

Używam ReSharper 7 i nie jestem jedyną osobą, której tego doświadczam.

ProfK
źródło
4
To jest trochę lewe pole, więc zrobię komentarz zamiast odpowiedzi - ale jeśli otrzymam to jest to normalne, ponieważ mam otwarte okno RDC na inny komputer i ostatnio umieściłem coś w tym oknie RDC w schowku (za pomocą copy / cut), czasami okaże się, że obecnie próbuje on przenieść go na moją maszynę lokalną ... i dlatego mój VS czeka na zakończenie. Zamknięcie RDC normalnie je
rozwiązuje
2
Dzięki @freefaller, ale nigdy nie mam aktywnych połączeń zdalnych.
ProfK
3
Dokładny problem! To naprawdę bardzo irytujące ... czy mógłbyś znaleźć źródło problemu? (PS Nie mam ReSharpera)
Mahmoud Moravej
1
Mam również problem w VS2010, więc nie jest to problem z Vs2012. U mnie dzieje się tak, gdy otwieram rozwiązanie, które ma otwartych wiele plików źródłowych. Po zabiciu VS za pomocą ProcExp, VS nie otwiera wszystkich plików i problem zniknął.
magicandre1981
7
Są chwile, kiedy chciałbym po prostu udać się do najbliższego biura Microsoft i zrobić na nich masakrę w Teksasie w tym celu. Spokojnie piszę kod, myśli krążą w mojej głowie, gdy BAM! uderzenie w twarz "operacje w tle, duh".
Filip Vondrášek

Odpowiedzi:

62

Miałem ten sam problem, szczególnie na stronach cshtml. Znalazłem tę stronę: https://devblogs.microsoft.com/aspnet/visual-studio-11-beta-razor-editor-issue-workaround, która sugeruje zmianę opcji wcięcia w menu Narzędzia> Opcje> Edytor tekstu> HTML> Tab na Inteligentny zamiast blokowania . W moim przypadku był już ustawiony na Smart i zmiana z powrotem na Block rozwiązała problem.

Aktualizacja: Myliłem się, to nie naprawiło dialogu, po prostu opóźniło go do czasu skopiowania lub wklejenia. W końcu zadziałało dla mnie przejście do Narzędzia> Ustawienia importu i eksportu ...> Zresetuj wszystkie ustawienia .

Ewentualnie powiązane pytanie: Visual Studios 2010 - Asp.net MVC 4 Beta - duże opóźnienia w wklejaniu i częste awarie

Walter
źródło
26
Głosowałem za i zamierzam komentować. Aktualizacja w tej odpowiedzi rozwiązała problem kopiowania / wklejania w VS2012 - problem, z którym borykałem się przez ponad dwa tygodnie, próbując rozwiązać. Zauważ, że wybrałem opcję „Tworzenie stron internetowych (tylko kod)” w ostatniej części kreatora resetowania wszystkich ustawień. PROSZĘ GŁOSOWAĆ, ABY TA ODPOWIEDŹ WYGLĄDAŁA LEPIEJ W WYSZUKIWANIU.
REMESQ
2
To, co powiedział Remesq, zadziałało dla mnie. To natychmiast rozwiązało problem. Dzięki.
draconis
1
+1 Dla mnie nie mogłem wkleić do plików „aspx” bez pojawienia się komunikatu „Oczekiwanie na tło ...”. Przechodząc do Narzędzia> Ustawienia importu i eksportu> Zresetuj wszystkie ustawienia i wreszcie wybierając Tworzenie stron internetowych, gdy zapytano, którą kolekcję zresetować, naprawiłem to za mnie. Dziękuję Ci.
Anthony Walsh
Resetowanie wszystkich ustawień działa przez chwilę, ale od czasu do czasu wciąż mam to denerwujące okno modalne !!!!
coffekid
2
+1 Z Resharper 7 przełączając Narzędzia> Opcje> Edytor tekstu> Ustawienie HTML, aby blokować ze
``
32

Jest to bardzo ogólna diagnostyka. Jest wyzwalany przez COM, który jest intensywnie używany w programie Visual Studio w celu zaimplementowania rozszerzalności. Podstawowym wyzwalaczem jest interfejs IMessageFilter. Wyzwalacz występuje, gdy COM organizuje wywołanie metody do innego wątku, a to wywołanie nie kończy się przez 60 sekund.

Faktyczne powiadomienie ma niewielką wartość, mówi o czymś, co już wiesz. Po upływie 60 sekund zazwyczaj zauważyłeś, że coś nie działa dobrze. Krótko mówiąc, po odrobinie przydatnej wiedzy, że Visual Studio w rzeczywistości nie jest całkowicie martwy. Jednak połączenie musi zostać zakończone, zanim VS znów stanie się użyteczny. Niewiele możesz zrobić, ale stuknij stopą i czekaj.

Ten problem jest prawie zawsze powodowany przez dodatek. Resharper jest z pewnością dobrym kandydatem. Możesz znaleźć problem, wyłączając dodatki jeden po drugim, aż problem zniknie. Jest to rodzaj problemu, który jest powszechny w nowych wersjach programu Visual Studio. Dostawcy dodatków potrzebują trochę czasu, aby usunąć błędy i zawieszenia. Skontaktuj się ze sprzedawcą, aby uzyskać pomoc i ogólnie poszukaj aktualizacji, które mogą rozwiązać problem.

Hans Passant
źródło
7

Usunięcie pliku „suo” Solutions działało u mnie.

chris.rickard
źródło
1
Dotarłem do tego stanu po wielokrotnym przełączaniu się między gałęziami w git. Usunięcie pliku .suo dla projektu zrobiło to również dla mnie
agarcian
6

Miałem ten sam problem iw moim przypadku był to DevExpress.

Wydawało się, że program Visual Studio zawiesił się za każdym razem, gdy wykonywałem operację kopiowania lub wycinania, wywołując komunikat:

„Oczekiwanie na zakończenie operacji w tle”.

Okazuje się, że faktycznie wykonywał jednorazowe zadanie w tle i naprawdę zajmowało to trochę czasu (ponad 5 minut).

Być może gdybym czekał normalnie, mógłby zniknąć, ale ostatecznie naprawiłem to, aby wyświetlić Zestaw narzędzi (został ukryty / zwinięty), co z kolei spowodowało wyświetlenie okna z napisem:

„dodanie [SomeDevExpressAssemblyNameHere] .dll”

ten aktualizował się o nazwę każdej biblioteki DLL wymaganej przez DevExpress do zapełnienia paska narzędzi.

W ten sposób mogłem zobaczyć postęp operacji, a po jej zakończeniu mogłem jak zwykle ponownie użyć kopiuj / wytnij wklej.

Mam nadzieję że to pomoże.

Ric Tokyo
źródło
Zdarzyło mi się to po zainstalowaniu nowej wersji CodeRush, a następnie odinstalowaniu starej. Po prostu czekając (dłuuugi) czas VS.Net po prostu zakończył to, co robił.
CodingBarfield
Grrrrr - to też był mój problem, moja skrzynka narzędziowa była ukryta, więc nie mogłem zobaczyć, co się dzieje.
Fergal Moran,
Inny użytkownik DevExpress tutaj, uważam, że robi to po każdej aktualizacji DevExpress. Trwa około 5 minut, a następnie zostaje naprawiony na stałe.
KingCronus,
5

Dla mnie poprawką była aktualizacja programu Web Essentials 2012 do wersji 1.8.

Problematyczna wersja to 1.6

rzymski
źródło
Próbuję wyłączyć WebEssentials, ale problem nadal występuje. Po Unistalled problem został rozwiązany.
Riccardo Bassilichi
5

Narzędzia> Opcje> Edytor tekstu> HTML> Karty -> Identyfikacja -> Brak ustawień rozwiązało ten problem za mnie.

Jits
źródło
1
Zmiana na „blokuj” również rozwiązuje problem.
Jenny O'Reilly,
3

To naprawiło to dla mnie:

Narzędzia> Opcje> Edytor tekstu> HTML> Różne

Odznacz opcję „Automatyczne identyfikowanie elementów przy wklejaniu w widoku źródła”

Napiszę aktualizację, jeśli problem wróci.

TheTim
źródło
2

Miałem ten problem przez kilka dni, próbowałem odinstalować i ponownie zainstalować mój program Visual Studio 2012 Ultimate Edition z dodatkiem SP3 ... Nadal nie działa. Więc usunąłem wszystkie moje rozszerzenia (narzędzia git dla VS 2012 i narzędzie do pobierania pakietów Nuget), zrestartowałem VS i znów działało jak urok! Mam nadzieję, że to działa!

Powodzenia!

Lucas MCKENNA
źródło
1

Doświadczyłem tego problemu podczas uruchamiania Visual Studio na maszynie wirtualnej - Virtual Box 4.2 działającej na Mac OS X Mountain Lion, hostującej nową instalację Windows 7 z zainstalowanym tylko Visual Studio. Odkryłem, że problem był spowodowany przez 2 oddzielne problemy.

Po pierwsze, mój projekt znajdował się w folderze udostępnionym z systemu operacyjnego hosta. Innymi słowy, na Windows Guest mój projekt pojawił się na dysku sieciowym. Tak więc otwarcie projektu w programie Visual Studio z dysku sieciowego wydawało się powodować ten problem, ponieważ problem zniknął, gdy skopiowałem projekt na dysk C maszyny wirtualnej z systemem Windows i otworzyłem go w programie Visual Studio z kopii na dysku C.

Po drugie, ponownie zacząłem doświadczać problemu, gdy dysk twardy maszyny wirtualnej był pełny. Na twardym dysku miałem około 1 GB wolnego miejsca. Kiedy zwiększyłem rozmiar dysku twardego na maszynie wirtualnej, ten problem zniknął.

Machaba
źródło
1

Właśnie odtworzyłem podobny problem z dodatkiem Codemaid. Znaleziono tę rozmowę :

W tym problemie jest wiele szczegółów, ale aby spróbować podsumować, problem polega na tym, że API VS2012 C ++ wprowadziło problem z zakleszczeniem, gdy dostęp do API jest uzyskiwany z wątku interfejsu użytkownika (np. Kontekst WPF, taki jak Spade). To nie był problem w VS2010, a Microsoft naprawił go w VS2013, ale nie będzie go łatał dla VS2012.

Wygląda na to, że powinna pojawić się poprawka (dotycząca Codemaid):

Prosimy o śledzenie tego wątku w celu dalszego rozwiązywania problemu. Wiąże się z tym większym przepisaniem, więc budowałem w tym kierunku, dodając najpierw wiele testów jednostkowych, aby zapewnić spójność funkcjonalności po zmianach.

dtmland
źródło
1
Naprawiono to teraz (wersja 0.7.0). To była przyczyna mojej wersji, więc dzięki!
dlanod
1

Wydawało mi się, że jest to związane ze składnią maszynki do golenia, ponieważ miałem ją tylko w jednym konkretnym pliku.

Na przykład, jeśli umieściłem następujący kod w jednej linii, miałem opisany problem.

@section BodyClassName {uwaga}

Jednak po umieszczeniu nawiasu zamykającego w następnym wierszu problem zniknął

@section BodyClassName {note
}

Z poważaniem

Stijn

Stijn Liesenborghs
źródło
1

Daleko od idealnego rozwiązania, ale proszę spróbować uruchomić Visual Studio w trybie administratora. Wypróbowałem praktycznie wszystko i to była jedyna rzecz, która działała dla mnie

Quade
źródło
1

Otwórz Visual Studio, utwórz nową aplikację MVC, zamknij nową aplikację, otwórz starą aplikację i działa!

abiNerd
źródło
Ten sam problem, co OP, pojawił się niespodziewanie. VS2013 w projekcie WebForms. Twoja procedura rozwiązała problem.
Secretwep
1

Sprawdź, czy IIS lub inny proces (być może BizTalk) blokuje twoje biblioteki DLL / odwołania
Zabij / zatrzymaj IIS lub inny proces, jeśli tak jest

domy
źródło
0

Myślę, że znalazłem wskazówkę! Wszystko kończy się na dcomcnfg.exe!

Otwórz go i przejdź pod następującą ścieżką:

Usługi składowe> komputery> mój komputer> konfiguracja dcom

po kliknięciu na dcom zobaczysz wiele ostrzeżeń zależnych od ilości komponentów na twoim komputerze.

Kliknij tak w każdym oknie komunikatu, aby dodać poprawny rekord dla dcom.

Senamas
źródło
1
Jak zawęziłeś to do DCOM? Z jakiego systemu operacyjnego korzystasz? Nie widzę żadnych ostrzeżeń na moim pudełku z Win 7 x64.
Mrchief
0

Odkryłem, że VS ładuje również pakiety podczas „operacji w tle”. Możesz usunąć niepotrzebne rozszerzenia, aby przyspieszyć operację.

Libor
źródło
0

Naprawiłem to kilka tygodni temu po wyłączeniu TeamViewer 8 Clipboard Sync! teraz pojawia się z powrotem bez powodu, więc próbowałem zresetować wszystkie ustawienia i zadziałało.

Afshin
źródło
0

Dla mnie był to dodatek Resharper otwierający okno dialogowe, które się nie pokazało. Znalazłem tylko ikonę okna dialogowego w menu ukrytych ikon na pasku zadań. Kiedy pozbyłem się okna dialogowego, program Visual Studio natychmiast wrócił do normy.

JanBrus
źródło