Процесс WPF BackgroundWorker RunWorkerCompleted вызывается несколько раз, почему? - PullRequest
0 голосов
/ 09 апреля 2010

У меня есть код, который запускает фоновый процесс поиска в моем приложении WPF:

 private void RunSearch(SearchArguments arguments)
    {
        _getSearchResults.DoWork += GetSarchFromDb;
        _getSearchResults.RunWorkerCompleted += SearchFinished;
        _getSearchResults.RunWorkerAsync(arguments);
    }

RunSearch исключен из события button_click.

В моем методе SearchFinished есть окно сообщения, в котором отображается «Результаты не найдены». По какой-то причине метод SearchFinished иногда вызывается несколько раз, что приводит к отображению нескольких MessageBox. Есть ли обходной путь для этого?

1 Ответ

2 голосов
/ 09 апреля 2010

Бросил пистолет с постингом немного.

Поскольку я связываю события по нажатию кнопки, каждый раз, когда я нажимаю кнопку, увеличивается число выполненных событий. Я переместил провод к конструктору, и моя проблема была исправлена.

...