C# 为什么我的文件没有被写入?
我正在创建一个“debug/log”文本文件,以查看我正在使用的应用程序挂起时,哪些“后台线程”正在运行 首先,当它们被激活时,我将它们存储在StringBuilder中: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
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()
流编写器
,以便将其刷新到文件中。使用
语句将其包装在中。您在哪里关闭或刷新文件?