WeakEventパターンについて – プログラミング – Home

WeakEventパターンについて
 
通知
すべてクリア

WeakEventパターンについて


大
 大
(@大)
ゲスト
結合: 16年前
投稿: 2
Topic starter  

WeakEventパターンで疑問があります。
検索するとWeakEventManagerのCurrentManagerの実装に

static FooEventManager CurrentManager
{
get
{
Type managerType = typeof(FooEventManager);
FooEventManager manager = (FooEventManager)
WeakEventManager.GetCurrentManager(managerType);

if (manager == null)
{
manager = new FooEventManager();
WeakEventManager.SetCurrentManager(managerType, manager);
}

return manager;
}
}

というサンプルが見つかりましたが
複数スレッドからCurrentManagerにアクセスする可能性を考えると

static FooEventManager()
{
WeakEventManager.SetCurrentManager(typeof(FooEventManager), new
FooEventManager());
}
static FooEventManager CurrentManager
{
get { return (FooEventManager)WeakEventManager.GetCurrentManager(typeof
(FooEventManager)); }
}

とした方が適切ではないでしょうか?

あと、RemoveListenerを呼ばなかった場合、Managerに登録された情報は削除されずに
アプリケーションが終了するまで残ってしまうのでしょうか?
必ずRemoveListenerすべきでしょうか?


引用解決済
トピックタグ
大
 大
(@大)
ゲスト
結合: 16年前
投稿: 2
Topic starter  

WeakEventManagerがDispatcherObjectから派生している事を見逃してました。
WeakEventManagerは複数のスレッドからアクセスすべきではないのですね。

最初の疑問については解決しました。
RemoveListenerについての御意見お願いします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました