2016-12-20 13 views
0

2番目のスレッドから発生したカスタムイベントを使用しようとしています。ここでは、コードの関連部分です:このイベントで「オブジェクト参照が要求されました」が表示されるのはなぜですか?

delegate void SearchCompleteHandler(Dictionary<string, List<string>> results); 
event SearchCompleteHandler SearchComplete; 

public static void Search() 
{ 
    Dictionary<string, List<string>> result = new Dictionary<string, List<string>>(); 
    SearchComplete?.Invoke(result); 
} 

SearchComplete = new SearchCompleteHandler(ShowSearchResults); 
SearchComplete += new SearchCompleteHandler(ShowSearchResults); 
dupeSearchThread = new System.Threading.Thread(Search); 
dupeSearchThread.Start(); 

私は、この行でエラーが発生します。

SearchComplete?.Invoke(result); 

VSは、「オブジェクト参照が、この非静的プロパティのために必要である」と述べている(おおよそのthanslationを)。

私は、イベントにハンドラを追加すると、それを使用する前に十分であると考えました。私は何をすべきか ?

答えて

2

これは静的でないオブジェクトを参照しているために発生します。クラスのインスタンス内でアクセス可能にするためにキーワードstaticをSearchメソッドから削除し、すべてのオブジェクトにアクセスできるようにする必要がありますその中でインスタンス化された変数とオブジェクト

関連する問題