2016-09-03 6 views
0

私は、非同期ネットワーキング(100ソケット以上の並列ネゴシエーション)を行うWPFアプリケーションを使用しています。 VSデバッガを接続してアプリを起動し、ネットワークコードを起動すると、CPU使用率が60%(VS、VSデバッガとvshostプロセス間で共有)にジャンプし、UIが非常に反応して最大3秒間フリーズします。すでに実行中のプロセスにデバッガを接続すると同じことが起こります。通常の状態では、1〜3%のCPUを使用し、UIはスムーズです。 「CPU使用率」モードでプロファイラーVSVisual StudioデバッガをアタッチするとCPU使用率が高くなり、UIスレッドロックが発生する

は、CPUが[外部コード]で使用されていることを示して

どのようにこの問題を解決しますか。

+0

出力ウィンドウで何が起こっているかを調べると、クリスタルボールにはメッセージの*ロット*が表示されます。彼らは安くはありません。 –

+0

実際、私はたくさんの "Exception thrown"というメッセージを持っています。それを防ぐ方法はありますか? – Poma

+0

例外は約30 /秒のレートでスローされますが、これは私の使用例では正常ですが、すべてがキャッチされます。 – Poma

答えて

0

例外をスローするだけの場合、この例外をどのように処理しましたか?

たとえば、クライアントがサーバー側にリクエストを送信し、サーバー側がクライアントに応答を返しますが、クライアントがいくつかの例外で本当に応答を処理できない場合、私はそれがユーザーのUIプロセスに影響すると思います高いCPU使用率などがあります。

実際の原因は、例外が何であるか、そしてこの例外を実際に解決/処理する方法です。

メッセージが表示されないようにするには、出力ウィンドウを右クリックし、[例外メッセージ]を選択して回避することをお勧めしますが、本当の理由を見つけて解決する方が良い解決策です。

+0

まず第一に、私のアプリは完璧に正常に動作し、デバッガは接続されていません。私は非常に信頼性の低いネットワークとサーバーで動作するので、ネットワーク例外を処理する私の方針は、それらを静かにログして操作を再試行することです。それらのほとんどはTimeoutExceptionとSocketExceptionです。すでに指摘したように、出力ウィンドウから例外を隠しても問題は解決しません。 – Poma

+0

WPFプロジェクトプロパティで[Visual Studioホスティングプロセスを有効にする]オプションを無効にしますか? VSプロファイラツールを使用しているようですが、このCPUツールを使用していますか? https://blogs.msdn.microsoft.com/visualstudioalm/2014/02/28/new-cpu-usage-tool-in-the-performance-and-diagnostics-hub-in-visual-studio-2013/、doあなたは[外部コード]ツリーの下の項目を取得しますか? –

+0

私は既に "CPU使用率"モードの私の投稿>> VSプロファイラで指摘したように、CPUは[外部コード] – Poma

関連する問題