「デバッグ/ログ」テキストファイルを作成して、作業中のアプリがハングしたときに実行されている「バックグラウンドスレッド」を確認しようとしています。
まず、アクティブ化されると、StringBuilderに保存します。
public static StringBuilder ActiveBackgroundThreads = new StringBuilder();
オンとオフが切り替わる「バックグラウンドスレッド」がかなりの数(50近く)あり(元の開発者が名前を付けましたが、実際にそのようなものかどうかはわかりません)、そこでStringBuilderに追加を追加しました、 そのようです:
private void InitializeBackgroundThread_PDALoginTerminate( bool add )
{
try
{
if ( add )
{
pc.PDALoginTerminate += new PendingCommands.PDALoginTerminateEventHandler( DeinitLoginDialogs );
SSCS.ActiveBackgroundThreads.Append("DeinitLoginDialogs\r\n");
}
else
{
pc.PDALoginTerminate -= new PendingCommands.PDALoginTerminateEventHandler( DeinitLoginDialogs );
SSCS.ActiveBackgroundThreads.Replace("DeinitLoginDialogs\r\n", "");
}
. . .
...そして最後に(ハングする前にコードの最後の場所に到達したら)StringBuilderの内容をテキストファイルに書き出すか、次のことを試みます。
StreamWriter file = new StreamWriter(@"\hereIAm.txt");
file.WriteLine(SSCS.ActiveBackgroundThreads.ToString());
...それでも、そのファイルを開くと(作成されます)、ファイルには何も含まれていません(0バイト)。それらのInitializeBackgroundThread_*メソッドのいくつかが呼び出されていることを私は知っています。ファイルが書き込まれる前に、開始されたすべてのユーザーが停止する可能性もありますが、私はそれを非常に疑っています...