Що це за "Очікування на фонову операцію" у Visual Studio 2012?


96

Помилково, але досить часто, без видимих ​​причин, VS 2012 закриється діалогом, який говорить: "Чекаючи закінчення фонової операції". Наприклад, це може статися під час простого редагування старого коду, а не при явному виклику будь-якої команди IDE.

Що спричиняє це, і чи можу я з цим щось зробити?

Я запускаю ReSharper 7, і я не єдиний, кого я знаю, переживаючи це.


4
Це трохи ліве поле, тому буде робити коментар, а не відповідати, але якщо я отримую це, це зазвичай тому, що у мене є вікно RDC, відкрите для іншого комп'ютера, і нещодавно помістив щось у це вікно RDC у буфер обміну (через копіювати / вирізати), то іноді ви виявите, що зараз він намагається перенести його на мою локальну машину ... і тому моя VS чекає, поки це завершиться. Закриття RDC зазвичай сортує це
freefaller

2
Дякую @freefaller, але у мене ніколи не було активних віддалених з'єднань.
ProfK

3
Майте точну проблему! Це справді дуже дратує ... Ви могли б знайти джерело проблеми? (PS У мене немає ReSharper)
Махмуд Моравей

1
У мене також є проблема у VS2010, тому це не проблема Vs2012. Для мене це трапляється, коли я відкриваю рішення, у якому відкрито багато вихідних файлів. Після вбивства VS за допомогою ProcExp, VS не відкриває всі файли, і проблема зникла.
magicandre1981

7
Бувають випадки, коли я просто хотів би зайти до найближчого офісу Microsoft і провести для них тесаську різанину. Я спокійно пишу код, у мене в голові думки, коли БАМ! ляпас у вічі "фонові операції, да".
Філіп Вондрашек

Відповіді:


62

У мене була та сама проблема, особливо на сторінках cshtml. Я знайшов цю сторінку: https://devblogs.microsoft.com/aspnet/visual-studio-11-beta-razor-editor-issue-workaround, яка пропонує змінити параметр відступу в Інструменти> Параметри> Текстовий редактор> HTML> Вкладка на Розумний замість Блокування . У моєму випадку для нього вже було встановлено значення Smart, а зміна його на Block вирішила проблему.

Оновлення: я помилився, це не виправило діалог, воно просто затримало його, доки я не скопіював чи не вставив. Що, нарешті, у мене вийшло, це перейти до Інструменти> Параметри імпорту та експорту ...> Скинути всі налаштування .

Можливо пов'язане питання: Visual Studios 2010 - Asp.net MVC 4 Beta - великі затримки вставки та часті збої


26
Я проголосував і збираюся коментувати. Оновлення в цій відповіді вирішило для мене проблему копіювання / вставки з VS2012 - проблемою, з якою я боровся більше двох тижнів, намагаючись з’ясувати. Зверніть увагу, що я вибрав "Веб-розробка (лише код)" в останній частині майстра скидання всіх налаштувань. БУДЬ ЛАСКА, ПРОГОЛОСУЙТЕ, ЩО ЦІЙ ВІДПОВІДЬ ПОКРАЩАЄТЬСЯ ЛІПШЕ ЗА ПОШУКИ.
REMESQ

2
Те, що сказав Ремеск, спрацювало для мене. Це вирішило проблему миттєво. Дякую.
draconis

1
+1 Для мене я не міг вставити у файли "aspx", не з'явившись повідомлення "Очікування фону ...". Перейшовши в меню Інструменти> Параметри імпорту та експорту> Скинути всі налаштування і, нарешті, вибравши Веб-розробку, коли запитували, яку колекцію скинути, це виправлено для мене. Дякую.
Ентоні Уолш

Скидання всіх налаштувань працює деякий час, але час від часу у мене все ще є ця надоїдлива аргументація модального вікна !!!!
coffekid

2
+1 Resharper 7, переключивши Інструменти> Параметри> Текстовий редактор> Налаштування HTML для блокування від «розумного», виправив проблему для мене
Тахбаза,

32

Це дуже загальна діагностика. Він запускається COM, який активно використовується у Visual Studio для реалізації розширюваності. Основним тригером є інтерфейс IMessageFilter. Тригер виникає, коли COM маршалює виклик методу до іншого потоку, і цей виклик не завершується протягом 60 секунд.

У фактичному сповіщенні мало значення, воно повідомляє вам те, що ви вже знаєте. Коли минуло 60 секунд, ви, як правило, вже помічали, що справи працюють погано. Коротко від найменших корисних знань, що Visual Studio насправді не зовсім мертва. Однак виклик повинен завершитися до того, як VS знову стане придатним для використання. Ви мало що можете зробити, але постукати ногою і зачекати.

Ця проблема майже завжди спричинена надбудовою. Решарпер, безумовно, хороший кандидат. Ви шукаєте неполадку, вимикаючи надбудови по одному, доки проблема не зникне. Це проблема, яка часто зустрічається у нових версіях Visual Studio. Постачальникам надбудов потрібен деякий час, щоб виправити помилки та зависання. Зверніться до постачальника за підтримкою та в цілому шукайте оновлення, які можуть вирішити проблему.


7

Видалення файлу "suo" Solutions мені вдалося.


1
Я дійшов до цього стану після багаторазового перемикання між гілками в git. Видалення файлу .suo для проекту зробило це і для мене
agarcian

6

У мене була та сама проблема, і в моєму випадку це був DevExpress.

Здавалося, Visual Studio зависає кожного разу, коли я виконував операцію копіювання або вирізання, викликаючи повідомлення:

Msgstr "Очікування завершення фонової операції".

Виявляється, насправді він виконував одноразове завдання у фоновому режимі, і це справді забирало час (більше 5 хвилин).

Можливо, якби я чекав нормально, це могло б зникнути, але що, нарешті, виправлено, це вивести Панель інструментів на поле зору (було приховано / згорнуто), що, у свою чергу, відкрило вікно із написом:

"додавання [SomeDevExpressAssemblyNameHere] .dll"

це постійно оновлювалось іменем кожної dll, необхідної DevExpress для заповнення панелі інструментів.

Таким чином я міг бачити хід операції, і після її закінчення я міг знову використовувати копію / вирізати пасту, як зазвичай.

Сподіваюся, це допомагає.


Це трапилося зі мною після встановлення нової версії CodeRush, а потім деінсталяції старої. Після простого очікування (дуже довго) часу VS.Net просто закінчив усе, що робив.
Кодування Барфілд,

Grrrrr - це теж була моя проблема, мій набір інструментів був прихований, тому я не міг побачити, що відбувається.
Фергал Моран

Ще один користувач DevExpress тут, я вважаю, він робить це після кожного оновлення DevExpress. Це займає близько 5 хвилин, а потім фіксується назавжди.
KingCronus

5

Для мене виправленням було оновлення Web Essentials 2012 до версії 1.8.

Проблемною версією було 1.6


Я намагаюся вимкнути WebEssentials, але проблема не зникає. Коли Unistalled проблема вирішена.
Ріккардо Бассілічі,

5

Інструменти> Параметри> Текстовий редактор> HTML> Вкладки -> Ідентифікація -> Немає налаштувань вирішило цю проблему для мене.


1
Перехід на "блокувати" також вирішує проблему.
Jenny O'Reilly

3

Це мені це виправило:

Інструменти> Параметри> Текстовий редактор> HTML> Різне

Зніміть прапорець біля опції "Автоматичні ідентифікатори елементів на вставці у поданні джерела"

Якщо проблема з’явиться, я опублікую оновлення.


2

У мене ця проблема була кілька днів, я намагався видалити та перевстановити мою візуальну студію 2012 ultimate edtion SP3 ... Досі не працював. Тож я видалив усі свої розширення (інструменти git для VS 2012 та завантажувач Nuget Package), перезапустив свою VS, і це знову сподобалось чаром! Сподіваюся, це працює!

Удачі!


1

Я зіткнувся з цією проблемою під час роботи Visual Studio у віртуальній машині - Virtual Box 4.2, що працює на Mac OS X Mountain Lion, розміщуючи свіжу інсталяцію Windows 7, не встановлюючи нічого іншого, крім Visual Studio. Я виявив, що проблему спричинили дві окремі проблеми.

По-перше, мій проект знаходився в папці, спільно використовуваній з приймаючої ОС. Іншими словами, у програмі Windows Guest мій проект з’явився на мережевому диску. Отже, відкриття проекту в Visual Studio з мережевого диска, здавалося, спричинило цю проблему, оскільки проблема зникла, коли я скопіював проект на диск C віртуальної машини Windows і відкрив його у Visual Studio з копії на диску C.

По-друге, я знову почав відчувати проблему, коли жорсткий диск на віртуальній машині заповнювався. У мене було близько 1 Гб вільного місця на жорсткому диску. Коли я збільшив розмір жорсткого диска на віртуальній машині, ця проблема зникла.


1

Щойно відтворено подібну проблему з надбудовою Codemaid. Знайшов цю розмову :

У цьому випуску є багато подробиць, але щоб спробувати повторити проблему, це те, що API VS2012 C ++ запровадив проблему глухого кута, коли API отримує доступ із потоку інтерфейсу користувача (наприклад, контекст WPF, такий як Spade). Це не було проблемою у VS2010, і Microsoft виправила це для VS2013, але вони не будуть виправляти це для VS2012.

Здається, це вказує на те, що має бути виправлення (для Codemaid):

Будь ласка, стежте за цією темою для поточного вирішення проблеми. Він пов’язаний із цим великим переписом, тому я будував його, додаючи багато модульних тестів спочатку, щоб забезпечити стабільність функціональності після змін.


1
Зараз це виправлено (версія 0.7.0). Це було причиною моєї версії цього, тож спасибі!
dlanod

1

Для мене це здавалося пов'язаним із синтаксисом бритви, оскільки я мав це лише в одному конкретному файлі.

Наприклад, якщо я помістив наступний код в один рядок, у мене виникла описана проблема.

@section BodyClassName {примітка}

Але при розміщенні закриваючих дужок у наступному рядку проблема пішла

@section BodyClassName {примітка
}

З повагою

Stijn


1

Далеко не ідеальне рішення, але, будь ласка, спробувавши запустити Visual Studio в режимі адміністратора, я спробував практично все, і це було єдине, що працювало у мене


1

Відкрийте Visual Studio, створіть нову програму MVC, закрийте нову програму, відкрийте стару програму, і вона працює!


Те саме питання, що і OP, вийшло несподівано. VS2013 у проекті WebForms. Ваша процедура видалила проблему.
secretwep

1

Перевірте, чи IIS чи інший процес (можливо, BizTalk) блокує ваші бібліотеки DLL / посилання
Убити / зупинити IIS або інший процес, якщо це так



0

я думаю, що знайшов підказку! Кожна річ закінчується dcomcnfg.exe!

Відкрийте його і перейдіть за таким шляхом:

Послуги компонентів> комп'ютери> мій комп'ютер> конфігурація dcom

після натискання на dcom ви побачите багато попереджень, які залежать від кількості компонентів на вашому ПК.

Клацніть так у кожному вікні повідомлення, щоб додати правильний запис для dcom.


1
Як ви звузили його до DCOM? В якій ОС ви працюєте? Я не бачу жодних попереджень на моєму вікні Win 7 x64.
Mrchief

0

Я виявив, що VS також завантажує пакети під час "фонової операції". Ви можете видалити непотрібні розширення, щоб пришвидшити роботу.


0

Це виправлено кілька тижнів тому після вимкнення синхронізації буфера обміну TeamViewer 8! тепер він з'являється назад без причини, тому я спробував скинути всі налаштування, і це спрацювало для мене.


0

У мене була та ж проблема, і я запускав VS, оскільки адміністратор, здається, зробив цю штуку замість мене (я розмістив подібне запитання на Visual Studio 2012 Express Hangs із повідомленням "Очікування завершення фонової операції" в команді Форматування документа, яка була позначена як дублікат цього, тому я вирішив, що поділюсь і тут).


0

Для мене це був аддон Решарпера, який відкрив діалогове вікно, яке не відображалося. Піктограму діалогу я знайшов лише в меню прихованих піктограм на панелі завдань. Коли я позбувся діалогового вікна, Visual Studio негайно повернувся до норми.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.