2010-04-09 73 views
0

我有一些代碼,啓動一個後臺進程在我的WPF應用程序搜索:WPF BackgroundWorker過程RunWorkerCompleted被多次調用,爲什麼?

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

RunSearch從button_click事件exicuted。

我在我的SearchFinished方法中顯示「找不到結果」的消息框。由於某些原因,SearchFinished方法有時會多次調用,這會導致顯示多個MessageBoxes。有沒有解決方法?

+0

「多次」多少次? – ChrisF 2010-04-09 15:07:38

+1

看起來答案可能在這裏 http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/7724ac95-a138-48ef-a208-dea0a566ada3 – 2010-04-09 15:08:19

+0

它每次增加1按下按鈕,這實際上有意義 – 2010-04-09 15:11:42

回答

2

把這張貼了一下就把槍衝了出來。

由於我在點擊按鈕時連接事件,每次單擊按鈕時,事件執行的次數都會增加。我把線路移到了構造函數中,我的問題就解決了。

+0

多次被這個[形象]錯誤咬傷。像這樣的情況下,它有助於進行一些日誌記錄 - 例如,您可能已經注意到執行次數和按鈕點擊之間的直接關係;) – 2010-04-09 15:14:24

相關問題