при условии, что опубликованный вами метод работает в контексте потока пользовательского интерфейса,
все, что вам нужно сделать, это обернуть логику (часть foreach
)
в методе вроде:
private void DeleteFiles(object state)
{
/// your logic here
}
и назовите ThreadPool.QueueWorkItem(new WaitCallback(DeleteFiles));
из метода чистых файлов.
если вы используете .NET 4.0, вы можете использовать что-то вроде:
Task myTask = Task.Factory.StartNew( () => DoWork(null));
затем проверьте статус myTask позже, чтобы проверить, выполнено ли оно.