【问题标题】:Self Updating a POCO Model class from external webservice从外部 Web 服务自我更新 POCO 模型类
【发布时间】:2012-04-28 01:43:09
【问题描述】:

我正在开发一个类库,该类库使用 GPS 纬度/经度坐标近乎实时地跟踪运输车辆。

该库从公交服务提供的休息 XML Web 服务中获取车辆位置。我希望车辆坐标能够自动更新它们,而不必通过我的应用程序中的刷新方法手动调用和更新它们。该类应使用最新数据自动更新自身,并在更新时引发事件。

是否可以使用定时事件在对象内部的计时器上自动刷新数据,或者如果不在类中运行消息泵,这是不可能的

如果存在此类问题的现有问题,我深表歉意,但如果存在我无法使用 Google 或网站搜索找到的问题。

【问题讨论】:

    标签: c# wpf events asynchronous self-updating


    【解决方案1】:

    您可以使用System.Threading.Timer。它不需要消息循环,因为它在线程池线程上“滴答”。这确实意味着您必须编组回 UI 线程来更新 UI。

    【讨论】:

    • 这样我就可以在对象中使用事件处理程序而无需泵。所以理论上我也可以引发一个事件,我的 ui 线程可以用来用新信息更新我的 WPF 控件呢?
    • 是的,尽管正如我所说,“Tick”方法是在线程池线程上调用的。因此,如果您只是在该方法中引发事件,订阅者方法也将在线程池线程上运行。在“Tick”方法和更新 UI 控件之间的某个地方,您将不得不编组回 UI 线程。
    • 我对多线程有点陌生,究竟什么是编组,我会继续这样做吗
    • 这里有一本很棒的免费介绍电子书:Albahari
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    相关资源
    最近更新 更多