Я создаю текстовый файл «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_ * вызываются; это возможно, что каждый начал также получает остановлен до файла записывается, но я очень сомневаюсь, что ...
Вам необходимо «Закрыть()' 'StreamWriter', чтобы оно было вровень с файлом. Оберните его в выражение 'using'. –
Где вы закрываете или промываете файл? –