私はagsXMPPライブラリを使用してXMPPに基づくMicrosoftWPFインスタントメッセージアプリケーションを開発しています。agsXMPPには、OnXmppConnectionStateChanged、OnLogin、OnPresenceなどの多くのイベントがありますが、WPFスレッドモードのため、UIのDispatcher.Invoke()メソッドを介してイベントを処理する必要があります。これは次のようになります。
void handleRosterItem(object sender, agsXMPP.protocol.iq.roster.RosterItem item)
{
STP_FriendsHolder.Dispatcher.BeginInvoke(new Action(delegate
{
RosterItemControl rosterItem = new RosterItemControl();
rosterItem.RosterItemName = item.Jid.User;
rosterItem.Margin = new Thickness(0);
STP_FriendsHolder.Children.Add(rosterItem);
}));
}
私はほとんどすべてのBeginInvoke/Invokeメソッドで匿名メソッドを使用しています。これは、どこにでもあまりにも多くの名前付きメソッドを作成したくないためです(これはそれほど「クリーン」ではないと思うため)。しかし、私はそれがOOPの方法ではそうではないのではないかと心配しており、これらの匿名の方法を維持することは非常に困難です。それで、どうすればこの状況でより良い方法でコーディングできますか?英語が下手でごめんなさい、はっきりさせたいと思います^ _ ^ありがとう!</ p>