メッセージハンドラーに次のコードがあります(任意のスレッドで呼び出すことができます):
private readonly Dictionary<string,IView> _openedViews = new Dictionary<string,IView>();
private readonly object _lockObject = new object();
public MainView()
{
Messenger.Default.Register<ViewChangeMessage>(this, "adminView", m =>
{
var key = m.ViewName;
lock (_lockObject)
{
if (_openedViews.ContainsKey(key) == false)
_openedViews.Add(key, GetView(key));
content.Content = _openedViews[key];
}
//...
});
//...
どうすればこの例外を取得できますか:An element with the same key already exists in the System.Collections.Generic.Dictionary<TKey,TValue>.
メッセージを複数回すばやく送信すると、例外が発生します。
編集: コードにコンテキストを追加しましたMessenger
。Galasoft.MVVMLight からのものです。