スレッドを使用して、「スケジュールされたタスク」(コンソールアプリケーション)の一部のタスクを非同期に処理するVB.NETアプリケーションがあります。VB.NETのDebug.Writelineはスレッドの実行を停止しますか?
我々はそうのように、一度に10個のスレッドを実行するには、このアプリケーションを制限している:
(擬似コード) - 10件のスレッド の一般的なリストを作成する - 各1 についてthreadprocをオフスポーン - ですか各スレッドが完了するまでに最長の実行を待機するステートメント。thread.join
threadprocによって呼び出されたコードに "Debug.Writeline"または "Trace.Traceinformation"ステートメントが含まれていると、スレッドがハングすることがあります。 Debug - Windows - Threadsウィンドウにそのスレッドが表示され、それに切り替えることができますが、Debug.Writelineステートメントを強調表示し、それを超えてしまうことはありません。
スレッドセーフではないDebugステートメントまたはTraceステートメントには特別なものがありますか?
なぜこれが問題になるのですか?デバッグステートメントをにしておくと、スレッドは決して完了しません。デバッグステートメントを出すと、スレッドは5秒以内に完了します。
ハングアップを引き起こすコードを教えてください。デバッグクラスとトレースクラスはスレッドセーフなので、これはかなり奇妙です。 –