ContextSwitchDeadlockが検出された
エラーメッセージ
ContextSwitchDeadlockが検出されました。
メッセージ CLR は COM コンテキスト 0x622b440 から COM コンテキスト 0x622b5b0 に切り替えることができず、この状態が 60 秒間持続しました。対象のコンテキスト/ユニットを所有するスレッドは、Windowsメッセージを送信せずに非ポンプ待ちを実行しているか、非常に長く実行されている処理を処理している可能性が高いです。このような状況は通常パフォーマンスに影響し、アプリケーションが応答しなくなったり、時間と共に蓄積されるメモリを使用したりする可能性さえあります。この問題を回避するには、すべてのシングルスレッド・ユニット(STA)スレッドでポンプ待機プリミティブ(CoWaitForMultipleHandlesなど)を使用し、非常に長く実行される操作の間に定期的にメッセージを送信する必要があります。
エラーの原因となったコード
記事中にエラーが表示される。
Visual Studio 2010によるデータURL生成ツールC#の作成
のコード内で
コードのキーライン
textBox1.Text = " + ext + ";base64," + Convert.ToBase64String(ms.GetBuffer())
+ "\" width=\"" + img.Width +"\" height=\"" + img.Height +"\" />";
主な原因
Convert.ToBase64String(ms.GetBuffer()) は長すぎる文字列を返します。
半音階のメソッド
デバッグ" 例外
ContextSwitchDeadlockを探し、チェックを外して、OK。
なぜ、ハーフトーンなのか?
なぜなら、問題を全く解決していないのではなく、その例外を発生させなくなっただけだからです。
この問題は間違いなくプログラム自体に問題があるので、トレースとデバッグを行い、問題の根本原因を突き止め修正する必要があります。
MSDN
コンテクストスイッチデッドロックMDA
回避策 STAメッセージの送信に関するCOMの規則に従ってください。
これは一般的なことなので、どうすればいいのかわかりません。
スタックオーバーフロー
NET - ContextSwitchDeadlock が検出されました。
素晴らしい回答がここにあります
これではユーザーのデスクトップにデッドウィンドウが残ってしまい、ユーザーエクスペリエンスが良くありません。また、他のプログラムがトップレベル・ウィンドウにメッセージを送ると、応答しなくなるという副作用もあります。
この問題を本当に解決するには、スレッドを使用する必要があります。MSDNライブラリや他の多くの場所で文書化されているBackgroundWorkerを見てみてください。
これで理解できましたね。 なぜ半音階方式なのか?
関連
-
C# string.format でのエラー: 入力文字列が正しい形式でない
-
C#とC++の型対応表まとめ
-
C#でUSBデバイスを操作する方法
-
エラーです。コレクションが変更されました。列挙操作が実行されない可能性があります。
-
vs2010 can't debug, can't enter breakpoint, breakpoint is invalid.
-
エラーです。名前 'Encoding' は現在のコンテキストに存在しない ソリューション
-
ASP.NET URL変更によるページ受け渡し
-
C# Concurrency Safe Collection リストの代わりにConcurrentBagを使用する。
-
ファイルまたはアセンブリ "Oracle "の読み込みに失敗しました。
-
SQLiteの解決策。ファイルまたはアセンブリ 'システム' を読み込めませんでした。正しくフォーマットされていないプログラムをロードしようとしている
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
C#の遅延関数の使用
-
C#の面接質問100選(.net開発者必見)
-
VS エラー LNK2005:**already defined in **.obj
-
不正なフォーマットでプログラムを読み込もうとした場合の問題を解決します。
-
C#のビルドコードで、すべてのコードパスが値を返さないエラーが発生する
-
System.InvalidOperationException: ConnectionString プロパティが初期化されていません。
-
C# データベース操作エラー。この接続に関連付けられた開いているDataReaderがすでにあり、これを閉じる必要があります...
-
GDI+でジェネリックエラーが発生しました@System.Drawing.Image.RotateFlip
-
c#App.config,ConfigurationManager の読み込みと書き込み。
-
devenv.exeアプリケーションエラー、アプリケーション例外を解決する