Последствия будут, если вы используете разблокированный объект приложения. Например, если вы хотите реализовать глобальный счетчик: -
Application("myCounter") = Application("myCounter") + 1
Приведенный выше код будет время от времени пропадать. Этот код читает, добавляет и присваивает. Если два потока пытаются выполнить это одновременно, они могут прочитать одно и то же значение, а затем записать одно и то же значение, увеличивая myCounter на 1 вместо 2.
Необходимо убедиться, что второй поток не может прочитать myCounter, пока второй поток не записал в него. Следовательно, это лучше: -
Application.Lock
Application("myCounter") = Application("myCounter") + 1
Application.Unlock
Конечно, существуют проблемы с параллелизмом, если блокировка удерживается в течение длительного времени, особенно если существуют другие применения для приложения, на которые не влияет код, удерживающий блокировку.
Следовательно, вам следует избегать дизайна, который потребовал бы длительной блокировки приложения.