2

1 週間前から、VS2010 で非常に迷惑な動作が見られます。プロジェクトをデバッグしていて、デバッガーがブレークポイントで停止すると、Windows が約 10 秒間フリーズします。この間、マウスとキーボードが役に立たないので、「Windows がフリーズする」と言います。

この問題は、特定のプロジェクトをデバッグし、2 つの異なるマシンで同じ結果を試したときにのみ発生します。プロジェクトは WPF であり、私はある時点でキーボードをフックします (マウスではありません) が、そのコードは何ヶ月も触れられていませんが、問題はわずか 1 週間前です。

これが表示される直前に、Telerikのすべての大きなスイート(トライアル)をインストールしたので、TelerikのVS統合が原因であるという最初の疑いがありました。すべての Telerik VS 統合 (「JustXXX」製品) をアンインストールしましたが、問題は残ります。

ここで何が起こっているのかについてヒントを与えるために、私は安倍である誰にでも非常に感謝しています.

ありがとう

編集 1: 新しいソリューションを構築して、すべてのプロジェクトをそこに移動しようとしましたが、問題は残ります。

次に、念のため Telerik をすべてアンインストールしましたが、これも効果がありませんでした。

次のテストは、まったく同じソリューションを別のマシンにロードすることでしたが、それは役に立ちました。そのマシンには、reSHarper 6.1 を除いて、VS2010 とのサードパーティ統合はありません。

また、この問題をもう少し分析しましたが、典型的なシナリオでは、最初の数回ブレークポイントにヒットすると、UI が約 10 秒間フリーズします。マウス/キーボードは応答を停止しますが、カーソルはコード エディターで点滅し続けます。次のいくつかのブレークポイントは同じことを行い、多くの場合、ある行から別の行に移動すると、非常に長い遅延が発生します (ただし、UI のフリーズはありません)。

また、最初のブレークポイントがアプリケーションの起動コードの非常に早い段階で設定されている場合、問題が発生しない可能性があります。しかし、コードをステップ実行し続けると、アプリケーションが (別のスレッドで) 自分自身を初期化するため、デバッガーの動作が遅くなります。

前に述べたように、これは単一のアプリケーションで発生するため、コードは何らかの形で明らかに関連しています。

デバッガの動作についてよく知っている人はいますか? ブレークポイントが設定されたり、ユーザーが 1 つの行から別の行に移動したり (スタック トレースを更新してウィンドウを監視する) するたびに必要な明らかな手順とは別に、すべてをフリーズさせる可能性のあるバックグラウンドで何が起こっているのか、またどのようにしてそれが可能になるのでしょうか?

私の最後の希望は VS2010 の完全な再インストールですが、そのオプションが必要になる前にこれを解決できることを願っています。

4

2 に答える 2

4

私はついにこの奇妙な行動の原因を見つけました。元の投稿で述べたように、ユーザーの非アクティブを検出できるようにするために、アプリケーションの初期化中にキーボード (およびマウス、忘れていました) をフックします。

AutoResetEvent監視はバックグラウンド スレッドで行われ、ユーザーのアクティビティまたは非アクティブが検出されるのを待つだけです。何らかの奇妙な理由でAutoResetEvent.WaitOne(...)、デバッガーに何らかの影響があります。私の現在の修正は、デバッガーが接続されている場合に待機を回避することです。

なぜこのようなことが起こったのか、今でも説明できません。1年間動作していましたが、ようやく問題の原因が見つかり、対処されました。

適切な説明が得られることを期待して、Microsoft に質問を送信しました。もしそうなら、ここに投稿します。

于 2012-06-04T13:45:33.787 に答える
-1

1つのプロジェクト/ソリューションで本当に問題が発生した場合は、新しい空のソリューションを作成してそこにプロジェクトを追加してみてください。これが役立つ場合があります。

Visual Studioの内部動作についてはよくわかりません(結局のところ、Visual Studioは最も複雑なソフトウェアの1つであるに違いありません)。しかし、私が学んだことは、再インストールが(1、2時間かかる場合でも)最良かつ最速のソリューションであることが多いということです。失いたくない設定は必ずバックアップしてください。

更新

私はここでこれを見つけました、多分あなたもすでにそれを見つけました:http: //connect.microsoft.com/VisualStudio/feedback/details/260864/visual-studio-debugger-occasionally-locks-up-the-entire-windows -gui

試してみて、言語バーを無効にすることができます。

于 2012-05-30T16:42:02.190 に答える