C# 为什么我的文件没有被写入?

C# 为什么我的文件没有被写入?,c#,.net,windows-ce,stringbuilder,streamwriter,C#,.net,Windows Ce,Stringbuilder,Streamwriter,我正在创建一个“debug/log”文本文件,以查看我正在使用的应用程序挂起时,哪些“后台线程”正在运行 首先,当它们被激活时,我将它们存储在StringBuilder中: public static StringBuilder ActiveBackgroundThreads = new StringBuilder(); 有相当多(近50个)“后台线程”(最初的开发人员给它们命名,尽管我不确定它们是否真的是这样)可以开关,我在StringBuilder中添加了如下内容: private voi

我正在创建一个“debug/log”文本文件,以查看我正在使用的应用程序挂起时,哪些“后台线程”正在运行

首先,当它们被激活时,我将它们存储在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_*方法正在被调用;可能每个启动的文件在写入文件之前都会被停止,但我非常怀疑……

流编写器是
Close()
,还是(更好)使用
语句将其放入

using(StreamWriter file = new StreamWriter(@"\hereIAm.txt"))
{
    file.WriteLine(SSCS.ActiveBackgroundThreads.ToString());
}
Close()
流编写器,或者(更好)使用
语句将其放入

using(StreamWriter file = new StreamWriter(@"\hereIAm.txt"))
{
    file.WriteLine(SSCS.ActiveBackgroundThreads.ToString());
}

您需要
Close()
流写入程序
StreamWriter
,这样它将刷新到文件中。使用
语句将其包装在
中。您在哪里关闭或刷新文件?您需要
Close()
流编写器
,以便将其刷新到文件中。使用
语句将其包装在
中。您在哪里关闭或刷新文件?