исследовал много тем об этом исключении, не повезло. мой простой код:C# программа зависает, когда я пытаюсь удалить файл, который используется
string t = Path.GetTempFileName();
t = t.Remove(t.Length - 11, 11);
var q = Directory.EnumerateFiles(t, "tmp????.tmp");
var f = q.ToList();
for (int i = 0; i < q.Count(); i++)
{
// if (Helper.CanReadFile(f[i]))
try
{
File.Delete(f[i]);
}
catch (IOException)
{
break;
}
}
Я запустил этот код в закрытии события mainwindow. Таким образом, он удаляет несколько файлов, попадает в исключение, а затем выполняет оператор «break», а затем .. где-то. Просто зависает и приостанавливает отладчик. Я попробовал несколько фрагментов кода, чтобы определить, используется ли файл перед удалением, но он получает исключение внутри этого кода (например, Helper.CanReadFile) и останавливает там поток программ. Мне действительно не нужно удалять все файлы, но мне нужно остановить это замораживание. Как я могу работать с этим исключением, чтобы не замораживать мою программу?
некоторые править с точкой останова и информацией для большинства из них.
1) получил исключение http://imgur.com/a/k6of3
2) первый шаг от него, ничего особенного http://imgur.com/a/FvWjz
3) вернулся к отчуждать http://imgur.com/a/LMdiA
4) вернулся к методу события http://imgur.com/a/FlIUf
5), который был вызван из onclose http://imgur.com/a/YQUrZ
6) после этого он петляет здесь некоторое время (я использую глобальную горячую клавишу) http://imgur.com/a/0qjdf он отключается после ~ 10 циклов с msg = 130. и моя программа закрывается штрафом, если я удаляю часть удаления файла.
7) заморожена часть (код не работает сообщение) http://imgur.com/a/WeEGj
«то .. где-то». Вы должны расследовать. Поместите точку останова в оператор break, затем шаг за шагом перейдите в отладчик –
. Что такое оператор break для anyways?вы действительно хотите прекратить удаление всех файлов только потому, что удаление какого-либо не удалось? – nozzleman
@nozzleman: ты прав. Мы не можем удалить определенный файл, это не означает, что вы пропустите все остальные ... –