Это стандартная проблема с потоками.Даже если вы можете заблокировать события, что очень трудно сделать, это все равно не решит проблему.Поскольку обработчик событий, возможно, уже запущен, но еще не завершен, к тому времени, когда вы хотите начать блокировку.
И у него есть стандартное решение, используйте ключевое слово lock.
Если этонецелесообразно, потому что пользователю необходимо изменить несколько элементов управления, прежде чем вы сможете снова выполнить запрос, а затем вам нужно прервать работающий поток.BackgroundWorker.CancelAsync, например.Если это нецелесообразно, поскольку для отмены запроса требуется слишком много времени, необходимо установить для свойства Enabled для элементов управления значение false во время выполнения запроса.