C#wpf聊天客户端线程

时间:2015-03-31 19:10:22

标签: c# wpf multithreading binding chat

我有这段代码:

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(..)),我需要添加来自其他线程的接收消息。

2 个答案:

答案 0 :(得分:0)

使用调度程序:

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

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

答案 1 :(得分:0)

解决方案:

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

如何称呼它:

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