Написание части приложения, которое должно очищать старые файлы, но некоторые из них довольно большие, поэтому я запускаю BackgroundWorkers, чтобы выполнить основную часть работы. Мой вопрос, если я звоню на file.Delete вызов на объект FileInfo на BackgroundWorker и выхода из приложения:BackgroundWorker and Deleting large files
- Что будет в этот файл, он собирается торчать в нерабочем состоянии?
- Будет ли приложение зависеть, или BGWorker останется в живых?
- Неверный ли файл?
- Есть ли BackgroundWorker правильный класс для использования в этом случае?
Я думаю, что рабочий рабочий является правильным выбором для такого рода операций. Я, вероятно, не могу ответить на все ваши вопросы, но вот некоторые из ответов: ни одно приложение не будет висеть в качестве фонового рабочего. Как только фоновый рабочий начнет обрабатывать файл, я думаю, что он может перейти в недопустимое состояние. Не могли бы вы использовать параллельную библиотеку задач, это в основном делает то же самое, но гораздо проще. – qamar
Если вы опасаетесь, что ваше приложение неожиданно завершится, и это действительно большие файлы, вы можете создать службу Windows, которая предоставляет очередь удаления. Фактически это будет ваша обложка backgroundWorker. Если вы хотите удалить файл, почему вы беспокоитесь, если он будет недействительным? Или вы просто хотите убедиться, что он действительно удален? – mrtig
Просто хочу убедиться, что он действительно ушел в основном. Я не очень беспокоюсь об этом неожиданно, но пользователь приложения может отказаться от приложения, не зная, что файлы удаляются. Я хотел бы сделать его максимально прозрачным. – Craig