C# wpf 聊天客户端线程

C# wpf chat client thread

我有这个代码:

public Model.Seznam<Model.Zprava> Seznam
    {
        get
        {
            return this.seznam;
        }
        set
        {
            this.seznam = value;
            this.ZmenaVlastnosti("Seznam");//ChangeProperty
        }
    }

用于此列表框

<ListBox HorizontalAlignment="Left" Height="328" Margin="10,10,0,0" VerticalAlignment="Top" Width="285" ItemsSource="{Binding Path=Seznam}" ItemTemplateSelector="{StaticResource VyberSablony}" />

问题是,我在主线程中使用 Seznam(添加我已发送的消息 - Seznam.Add(..)),我需要添加从其他线程接收到的消息。

使用调度程序:

Application.Current.Dispatcher.BeginInvoke((Action)( () => ZmenaVlastnosti("Seznam") ));

https://msdn.microsoft.com/en-us/library/cc190824(v=vs.110).aspx

解决方案:

public static void UiInvoke(Action a)
        {
            Application.Current.Dispatcher.Invoke(a);
        }

以及如何称呼它:

UiInvoke(() => { Seznam.Add(new Model.Zprava(DateTime.Now.ToString(), data, Model.Od.Server)); });