A. поднимите PROGRESS BAR ... обновите его и .REFRESH ... Если все, что вам нужно, это показать, что вы не мертвы.
B. DoEvents - это злые звуки, такие как «НИКОГДА НЕ ИСПОЛЬЗУЙТЕ GOTO ...» pleeeeze pleeeze pleeeze Времена и обстоятельства, когда синтаксис любого языка может быть вредным и полезным. Зачем прыгать через миллион обручей, чтобы по существу сделать «А» выше?
<<em> мыльница >
Если вы знаете, что что-то занимает ДЛИННОЕ ВРЕМЯ, и вы также знаете, что никакие другие операции не могут выполняться во время вашего ожидания (т. Е. Это, по сути, последовательный процесс), чем если вы делаете НИЧЕГО, как это, и толкаете это в «фон» тогда вы будете выдавать «ITS_OK_TO_CONTINUE» логические значения во всем остальном коде, просто ожидая окончания файлового процесса в любом случае… в чем смысл? Все, что вы сделали, это усложнили свой код ради ... хм ... "хорошего программирования?" Не в моей книге.
Кому какое дело, если DoEvents «остался» от ICE AGE. Это ТОЧНО правильно в МНОГИХ обстоятельствах. Например: фреймворк предоставляет вам ProgressBar.Refresh , но вы увидите, что он не совсем "работает", если вы не отложите несколько DoEvents после него.
<<em> / мыльница >
C. Фоновая задача - это просто фон; и вы обычно используете его для работы с задачами НЕ-SERIAL или, по крайней мере, с асинхронными задачами, которые МОГУТ или МОГУТ НЕ обновлять передний план в какой-то момент. Но я бы сказал, что всякий раз, когда так называемая фоновая задача ОСТАНАВЛИВАЕТ передний план, тогда она (почти) по определению --- ЗАПРОЩЕННАЯ задача; независимо от того, КАК ДОЛГО это займет.