Я не за компьютером, и это сложно сделать на этом устройстве, но здесь идет ...
Вариант 1: BackgroundWorker
Async / await не запускает его в фоновом потоке, загрузка должна выполняться в фоновом потоке. И помните, что Задачи и темы разные .
Создайте поле в своем классе, введите BackgroundWorker
. Подключите событие DoWork этого поля, чтобы оно было методом, содержащим:
IsBusy = true;
DisplayImages(query);
IsBusy = false;
А там, где раньше были эти строки, позвоните RunWorkerAsync
на свое поле. Вы можете поместить значение query
в поле, чтобы его можно было использовать из метода DoWork.
Вариант 2: фактическая резьба
Поместите 3 строки в метод с именем Load(string query)
. Там, где раньше были эти строки, сделайте это:
myNewThread = new Thread(() => Load(query));
myNewThread.Start();
Я думаю, myNewThread
должно быть полем, чтобы не собирать мусор.