У меня есть приложение формы, которое выполняет симуляцию и постоянно читает/записывает двоичный файл. Все работает нормально, если вы позволите этому пробежаться. Однако, если форма закрыта/симуляция отменена, поток файлов не закрывается должным образом, оставляя файл заблокированным. Есть ли способ убедиться, что все потоки закрыты? Я попытался следующие - но это не имеет никакого эффекта ... Большое спасибо заранее, TBinaryReader или Writer.Close() не закрывается должным образом C#
public BinaryWriter BinWrite;
public BinaryReader BinRead;
public BinaryWriter EnvBinWrite;
public BinaryReader EnvBinRead;
public void theForm_FormClosing(object sender, FormClosingEventArgs e)
{
//Close all binary file reader/writers -- crashes if it cannot overwrite files
foreach (Building B in AllBldgs)
{
try
{
EnvBinRead.Close();
}
catch
{ continue; }
try
{
EnvBinWrite.Close();
}
catch
{ continue; }
try
{
BinRead.Close();
}
catch
{ continue; }
try
{
BinWrite.Close();
}
catch
{ continue; }
}
}
Есть ли исключения? – CodeCaster
не то, что я знаю .. – timkado
Нет, потому что вы их съедаете. Удалите блоки try..catch и проверьте, не произошло ли это. – CodeCaster