Когда вы нажимаете кнопку 1, вы можете вызвать X, используя BackgroundWorker
, чтобы запустить его в отдельном потоке. Затем установите переменную (или неактивную кнопку 1), чтобы пользователь не мог снова запустить X.
X может записывать в свою собственную коллекцию во время обработки БД. Затем он может заменить переменную экземпляра этой коллекцией. Делая только одну замену, вы можете избежать проблем синхронизации между X и потоком пользовательского интерфейса.
После завершения X вы можете использовать событие BackgroundWorker
, чтобы пользовательский интерфейс знал, что операция завершена. Затем вы сбрасываете ту же самую переменную (или отменяете кнопку), чтобы пользователь знал, что теперь он может снова запустить X - при необходимости.
Что ты думаешь? Это помогает вообще?