CN102937897A - 异步数据绑定 - Google Patents

异步数据绑定 Download PDF

Info

Publication number
CN102937897A
CN102937897A CN2012104736405A CN201210473640A CN102937897A CN 102937897 A CN102937897 A CN 102937897A CN 2012104736405 A CN2012104736405 A CN 2012104736405A CN 201210473640 A CN201210473640 A CN 201210473640A CN 102937897 A CN102937897 A CN 102937897A
Authority
CN
China
Prior art keywords
data
thread
interface
user
described user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012104736405A
Other languages
English (en)
Other versions
CN102937897B (zh
Inventor
A·卡扎
S·P·伯克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102937897A publication Critical patent/CN102937897A/zh
Application granted granted Critical
Publication of CN102937897B publication Critical patent/CN102937897B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/543Local
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及异步数据绑定。本发明涉及将数据从数据源异步绑定至数据目标的方法、系统和计算机程序产品。用户界面线程和单独的线程被用于允许用户界面线程继续执行而非阻塞以获取更新后的数据,该更新后的数据为用户界面线程正在管理的用户界面的元素所绑定。单独的线程从数据源获取更新后的数据,将更新后的数据存储在本地高速缓存中,并通知用户界面线程,更新后的数据存在于本地高速缓存中。用户界面线程在检测到通知之后,访问本地高速缓存中的更新后的数据,并将更新后的数据填充到用户界面中。

Description

异步数据绑定
技术领域
本发明涉及数据绑定。
背景技术
计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已转变了人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排和会计等)。最近,计算机系统彼此耦合并耦合到其他电子设备以形成计算机系统和其他电子设备可以在其上传输电子数据的有线和无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算环境中。
用户通过应用,且更具体地,通过应用的用户界面,来与这些计算机系统交互。用户对计算机系统上执行的应用的感知很大程度上基于应用的用户界面的可用性。大多数用户期望应用的用户界面总是响应的。如果应用的用户界面是不响应的,则用户通常将认为该应用为有缺陷。然而,在许多应用中,用户界面依赖于不是立即可用的数据。例如,数据可被远程存储,或可被本地存储,但是要求在数据准备好被显示之前进行处理。因此,在这样的应用中,如果用户要求查看不是立即可用的数据,则应用的用户界面通常在要显示的数据正被获取时显得无响应。
发明内容
本发明的实施例涉及将数据从绑定源异步绑定至绑定目标的方法、系统和计算机程序产品。在一个实施例中,多线程的应用经由用户界面线程显示用户界面。用户界面线程判断用户界面的元素所绑定的数据要被更新。用户界面线程访问本地高速缓存来确定更新后的数据是否被存储在本地高速缓存中。用户界面线程请求单独的线程来从用户界面元素所绑定的数据源检索更新后的数据。以此方式,用户界面线程继续执行而不会阻塞,直到更新后的数据被获取。单独的线程然后向数据源请求更新后的数据。在接收更新后的数据之后,单独的线程将更新后的数据存储在本地高速缓存中。然后,单独的线程通知用户界面线程,更新后的数据已被存储在本地高速缓存中。
提供本发明内容以便以简化的形式介绍将在以下的具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,且其一部分根据本描述将是显而易见的,或可通过对本发明的实践来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书变得更加显而易见,或可通过对下文中所述的本发明的实践来领会。
附图说明
为了描述可获得本发明的上述和其他优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,在附图中:
图1示出了便于将数据从绑定源异步绑定至绑定目标的示例计算机体系结构。
图2示出了将数据从绑定源异步绑定至绑定目标的示例方法的流程图。
具体实施方式
本发明的实施例涉及将数据从绑定源异步绑定至绑定目标的方法、系统和计算机程序产品。在一个实施例中,多线程的应用经由用户界面线程显示用户界面。用户界面线程判断用户界面的元素绑定的数据要被更新。用户界面线程访问本地高速缓存来确定更新后的数据是否被存储在本地高速缓存中。用户界面线程请求单独的线程来从用户界面元素所绑定的数据源检索更新后的数据。以此方式,用户界面线程继续执行而不会阻塞,直到更新后的数据被获取。单独的线程然后向数据源请求更新后的数据。在接收更新后的数据之后,单独的线程将更新后的数据存储在本地高速缓存中。然后,单独的线程通知用户界面线程,更新后的数据已被存储在本地高速缓存中。
本发明的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质(设备)。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质(设备)和传输介质。
计算机存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM、固态驱动器(SSD)(如基于RAM)、闪存、相变存储器(PCM)、其它类型的存储器、其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(设备)(或反之亦然)。例如,通过网络或数据链接接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质(设备)。因而,应当理解,计算机存储介质(设备)可被包括在还利用(甚至主要利用)传输介质的计算机系统组件中。
计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
图1示出了便于将数据从绑定源异步绑定至绑定目标的示例计算机体系结构100。参考图1,计算机体系结构100包括计算机系统101以及潜在的一个或多个其它计算机系统,诸如计算机系统102a-102n。所描绘的计算机系统中的每一个通过诸如例如局域网(“LAN”)、广域网(“WAN”)或甚至因特网等网络(或作为网络的一部分)彼此连接。因此,所描绘的计算机系统中的每一个以及任何其他连接的计算机系统及其组件都可以创建消息相关数据并通过网络交换消息相关数据(例如,网际协议(“IP”)数据报和利用IP数据报的其他更高层协议,诸如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等)。
现在转向图1,计算机系统101执行多线程应用103,该应用包括用户界面线程103a以及诸如线程103b的一个或多个其它线程。用户界面线程103a管理多线程应用103的用户界面103d的显示。用户界面103d包括一个或多个用户界面元素103d1-103dn。
用户界面元素103d1-103dn中的至少一些被绑定至来自一个或多个数据源的数据。这一个或多个数据源可位于计算机系统101上,或位于诸如计算机系统102a的一个或多个其它计算机系统中的任何一个上。例如,数据源105a位于计算机系统101上,而数据源105b位于计算机系统102a上。在一些实施例中,数据源105a可位于计算机系统的云内。
数据绑定允许用户界面元素在用户界面元素所绑定的数据要被更新时自动更新。数据所绑定的用户界面元素可以或可以不在用户界面内显示该数据。例如,数据可包括显示在诸如列表框的用户界面元素内的文本,或者数据可包括定义用户界面元素的外观的配置参数。
用户界面线程103a被配置成执行数据从数据源到诸如用户界面元素的数据目标的异步绑定,以使得即使在更新后的数据不是一旦请求就立即可用的情况下用户界面线程也能继续执行。例如,用户界面线程103a在应用103内的主要角色(至少在一些实施例中)是更新用户界面103d的显示。
当用户界面线程103a向用户界面元素103d1-103dn中的一个或多个所绑定的数据源请求更新后的数据时,用户界面线程103a请求诸如线程103b的单独的线程从数据源检索更新后的数据。当线程103b正在检索更新后的数据时,用户界面线程103a继续执行而不会阻塞,直到更新后的数据可用。如此处所使用地,阻塞指的是暂停执行,直到更新后的数据被返回,就像在数据被同步绑定时完成那样。
在一些实施例中,每当定时器(诸如定时器107)期满时用户界面线程103a对更新后的数据进行请求。另外,在一些实施例中,用户界面线程103a还可诸如当用户(或另一应用)向用户界面提供输入时响应于对用户界面的输入对更新后的数据进行请求。
在用户界面线程103a请求线程103b获取更新后的数据之后并在用户界面线程103继续执行的同时,线程103b从数据源获取更新后的数据(如果有的话)。如果数据源中的数据已被更新,则线程103b检索数据并将其存储在本地高速缓存106中。另外,线程103b例如经由通知108向用户界面线程103a告知更新后的数据已被存储在本地高速缓存106中。在一些实施例中,通知108是应用户界面线程103激发的事件。另外,通知108可被添加到通知的队列中。
通知108不会使得用户界面线程103a立即向本地高速缓存106检索更新后的数据。相反,用户界面线程103a继续执行直到定时器107期满,此时用户界面线程103a可处理通知108。处理通知108可包括访问本地高速缓存106来检索更新后的数据,以及将更新后的数据填充到相应的用户界面元素中。
以此方式,用户界面线程103不会试图将更新后的数据填充到用户界面中,直到更新后的数据在本地高速缓存106中立即可用。此处描述的实施例减少或消除用户在与用户界面103d交互时可能经历的冻结的数量,而不是在对更新后的请求上阻塞,因为用户界面线程103a在它请求更新后的数据时不会阻塞。将更新后的数据从数据源传播到数据目标的处理中的大多数由除用户界面线程以外的单独线程执行,因此改进了所感知的用户界面103d的性能。
在本发明的一些实施例中,定时器107可被配置成允许指定用户界面线程103a请求和/或检索更新后的数据的频率。例如,应用103的开发者可设置定时器频率。在其它实施例中,应用103的用户可动态设置定时器频率。
如上所述,当定时器107期满时,用户界面线程103a可执行各种动作。例如,用户界面线程103a可处理它所接收的任何通知,诸如通知108。用户界面线程103a还可经由诸如线程103b的单独线程发起对更新后的数据的请求。以此方式,对底层数据源中的数据的任何改变将被检测并以定期间隔自动传播给数据目标。
诸如响应于对用户界面的输入,用户界面线程103a还可在任何时间发起对更新后的数据的请求。例如,用户可向用户界面提供请求用户界面的一元素的更新后数据的输入。响应于该输入,用户界面线程103a可访问本地高速缓存106来确定更新后的数据是否存在,且如果存在,则将更新后的数据填充到用户界面元素中。然而,如果更新后的数据不存在(例如,如果本地高速缓存对数据存储了空值),则用户界面元素可请求单独的线程从用户界面元素所绑定的数据源获取更新后的数据。
在一些实施例中,用户界面线程103a采用通知的队列。每当通知(例如,通过执行从数据源检索数据的一个或多个单独的线程)被生成时,通知可被添加到队列中。例如,通知108可被添加到队列中。队列可以是用户界面线程103a的一部分,或可以是应用103内的单独组件。然后,在一些时间,诸如当定时器107期满时,用户界面线程103a可访问该队列以处理每一通知,包括检索通知所表示的本地高速缓存106中的任何更新后的数据。
在一些实施例中,每当定时器107期满时队列中指定数量的通知可由用户界面线程103a处理。通知的数量可以是用户可配置的数量。例如,开发者(或用户)可指定每当定时器107期满时五个通知要被处理。从而,每当定时器107期满,至多五个数据更新将被处理,即使队列包含超过五个更新后数据的通知。
此处所述的实施例还可包括当更新后的数据被填充到用户界面中时应用效果。例如,当其从本地高速缓存106获取更新后的数据时,用户界面线程103a可使得更新后的数据以不同的方式出现在相应的用户界面元素中。在更新后的数据被填充到用户界面元素时被应用于更新后的数据的效果可以是开发者(或用户)可自定义的选项。
例如,遵循此处所述的绑定模型的应用可提供各种不同的效果,用户可(例如,通过选择应用的组件的属性)指定效果以使得当数据被填充到相关联的用户界面元素中时指定的效果被应用。在一些实施例中,每一用户界面元素可包括允许用户为每一用户界面元素独立指定效果的属性。可被应用的示例效果包括淡入、滑动进入、成长和收缩等。
此处所述的实施例还可向应用103的开发者(或用户)提供指定对用户界面的元素的数据绑定是要同步还是要异步进行的选项。当开发者指定数据绑定应同步进行时,用户界面线程103在对更新后的数据的请求上阻塞。作为对比,当开发者指定数据绑定应异步进行时,用户界面线程103a如上所述通过采用单独的线程获取更新后的数据来异步请求更新后的数据。在其它实施例中,数据绑定是同步还是异步进行可由应用103的用户指定。
图2示出了将数据从绑定源异步绑定至绑定目标的示例方法200的流程图。方法200将参考计算机架构100的组件和数据来描述。
方法200包括由用户界面线程判断用户界面的元素所绑定的数据要被更新的动作201。例如,用户界面线程103a可判断用户界面元素103d1所绑定的数据要被更新。用户界面元素所绑定的数据要被更新的判断可基于诸如定时器107的定时器的期满,来自用户的或者来自执行在计算机系统上的另一进程的对更新后的数据的特定请求,或者采用任何其它手段。
方法200包括由用户界面线程访问本地高速缓存以确定更新后的数据是否被存储在本地高速缓存中的动作202。例如,用户界面线程103a可访问本地高速缓存106来确定本地高速缓存106是否存储了对用户界面元素103d1所绑定的数据的更新。如果本地高速缓存106存储了更新后的数据,用户界面线程103a可将更新后的数据应用于绑定于相应的用户界面元素的数据。例如,用户界面元素是文本框,则绑定于文本框的数据是要在文本框内显示的文本,用户界面线程103a可将文本填充到文本框中。
方法200包括动作203:由用户界面线程请求单独的线程来从用户界面的元素所绑定的数据源检索更新后的数据,以使得用户界面线程继续执行而不会阻塞,直到更新后的数据被获取。例如,用户界面线程103a可请求线程103b从用户界面元素所绑定的数据源检索更新后的数据。在线程103b从数据源获取更新后的数据之时,用户界面线程103a继续执行而不会阻塞,直到更新后的数据被获取或返回。
用户界面线程103a可响应于确定更新后的数据被存储在本地高速缓存中来对更新后的数据进行请求,或可当在本地高速缓存中获取了更新后的数据之后进行请求(例如,使得较新的更新后数据在下一次用户界面线程103a检查本地高速缓存中的更新后的数据时被存储在本地高速缓存中)。
方法200包括由单独的线程向数据源请求更新后的数据的动作204。例如,线程103b可向诸如数据源105a的本地数据源或诸如数据源105b的远程数据源请求数据,或可按照其它方式访问存储在这些数据源内的数据。数据源105a和105b可表示多种不同类型的数据源中的任一种。在一个特定示例中,绑定源组件被添加到数据源以允许数据源内的数据被绑定。
方法200包括在接收更新后的数据时,由单独的线程在本地高速缓存中存储更新后的数据的动作205。例如,线程103b可在本地高速缓存106中存储更新后的数据。
方法200包括由单独的线程通知用户界面线程更新后的数据已被存储在本地高速缓存中的动作206。例如,线程103b可发送通知108来通知用户界面线程103a更新后的数据被存储在本地高速缓存106中。通知108可包括诸如属性改变事件等应用户界面线程103a激发的事件。线程103b还可通过向队列添加通知108来通知用户界面线程103a。
队列可存储用户界面线程103a在一段时间期间(诸如定时器期满之间或对更新后的数据的请求之间)从用于向数据源检索数据的任何数量的单独线程接收到的更新后的数据的所有通知。当用户界面线程103a检查待决通知时,队列中的每一通知可被处理以将所有更新后的数据从本地高速缓存106填充到用户界面103d的相应元素中。
以上描述描绘数据从数据源流向数据目标(例如,用户界面的元素)的一种方式。然而,用于将数据改变从源传播到目标的异步绑定技术还可用于将数据改变从目标传播到源。例如,如果用户界面元素(数据目标)内的数据被更新,则更新后的数据可被传播回数据源(例如,对象的属性、列表中的项目、数据库中的元素等)。
当将更新后的数据从数据目标传播到数据源时,上述过程可大体上按照逆序执行。例如,当(例如响应于用户输入)用户界面元素的数据被更新时,用户界面线程103a可将更新后的数据存储在本地高速缓存106中,并发起事件或使更新后的数据的通知在线程103b(或处理数据传播的另一线程)上排队。用户界面线程103a然后可继续执行,同时线程103b将更新后的数据传播回数据源。
当用户界面线程103a继续执行时,线程103b从高速缓存106获取更新后的数据,并将更新后的数据传播给相应的数据源。在一些实施例中,一旦数据源用更新后的数据更新了,用户界面线程103a就得到该更新的通知。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵盖。

Claims (15)

1.一种在包括处理器的计算机系统中将数据从绑定源异步绑定至绑定目标的方法,所述计算机系统执行经由用户界面线程显示用户界面的多线程应用,所述方法包括:
由所述用户界面线程判断所述用户界面的元素所绑定的数据要被更新;
由所述用户界面线程访问本地高速缓存,来确定更新后的数据是否被存储在所述本地高速缓存中;
由所述用户界面线程请求单独的线程,来从所述用户界面的元素所绑定的数据源检索更新后的数据,以使得所述用户界面线程继续执行而不会阻塞,直到更新后的数据被获取;
由所述单独的线程向所述数据源请求更新后的数据;
在接收更新后的数据之后,由所述单独的线程将所述更新后的数据存储在所述本地高速缓存中;以及
由所述单独的线程通知所述用户界面线程,更新后的数据已被存储在所述本地高速缓存中。
2.如权利要求1所述的方法,其特征在于,还包括:
由所述用户界面线程接收所述通知;以及
由所述用户界面线程访问所述本地高速缓存以检索所述更新后的数据。
3.如权利要求2所述的方法,其特征在于,所述用户界面线程响应于定时器期满来访问所述本地高速缓存以检索更新后的数据,所述定时器表示自从所述用户界面线程曾访问所述本地高速缓存以检索所述更新后的数据以来的持续时间。
4.如权利要求2所述的方法,其特征在于,还包括:
将所述更新后的数据填充到所述用户界面的元素中。
5.如权利要求4所述的方法,其特征在于,还包括:
在所述更新后的数据被填充到所述用户界面的元素中时,将一个或多个用户指定的效果应用于所述更新后的数据。
6.如权利要求1所述的方法,其特征在于,由所述用户界面线程判断所述用户界面的元素所绑定的数据要被更新包括:在所述用户界面处接收请求所述数据被更新的用户输入。
7.如权利要求1所述的方法,其特征在于,由用户界面线程判断所述用户界面的元素所绑定的数据要被更新包括:确定定时器期满。
8.如权利要求1所述的方法,其特征在于,所述定时器的持续时间是用户可配置的。
9.如权利要求1所述的方法,其特征在于,由所述用户界面线程访问本地高速缓存以确定更新后的数据是否被存储在本地高速缓存中还包括:
确定所述更新后的数据被本地存储;以及
更新所述用户界面的元素所绑定的数据。
10.如权利要求1所述的方法,其特征在于,由所述用户界面线程请求单独的线程向所述用户界面的元素所绑定的数据源请求更新后的数据,是响应于所述用户界面线程确定所述本地高速缓存没有存储所述用户界面元素的更新后的数据而执行的。
11.如权利要求1所述的方法,其特征在于,由所述单独的线程通知所述用户界面线程所述更新后的数据已被存储在所述本地高速缓存中包括:所述单独的线程在所述用户界面线程上激发一事件。
12.如权利要求1所述的方法,其特征在于,由所述单独的线程通知所述用户界面线程所述更新后的数据已被存储在所述本地高速缓存中包括:所述单独的线程将一事件添加到所述用户界面线程上的队列中,所述队列包括指示所述用户界面的一个或多个其它元素所绑定的数据已被更新并被存储在所述本地高速缓存中的一个或多个其它事件。
13.如权利要求12所述的方法,其特征在于,还包括:
在一定时器在所述用户界面线程上期满之后,由所述用户界面线程处理所述队列中的每一事件。
14.如权利要求13所述的方法,其特征在于,由所述用户界面线程处理所述队列中的每一事件包括:
由所述用户界面线程访问所述本地高速缓存以检索所述用户界面元素的一个或多个其它元素中的每一个所绑定的更新后的数据;以及
将所述更新后的数据填充到所述用户界面的一个或多个其它元素中的每一个中。
15.在包括处理器的计算机系统中,所述计算机系统执行经由用户界面线程显示用户界面的多线程应用,一种存储计算机可执行指令的计算机可读存储设备,所述指令当被处理器执行时,执行一种将数据从绑定源异步绑定至绑定目标的方法,所述方法包括:
由所述用户界面线程判断所述用户界面的元素所绑定的数据要被更新;
由所述用户界面线程访问本地高速缓存来确定更新后的数据是否被存储在所述本地高速缓存中;
由所述用户界面线程请求单独的线程,来从所述用户界面的元素所绑定的数据源检索更新后的数据,以使得所述用户界面线程继续执行而不会阻塞,直到更新后的数据被获取;
由所述单独的线程向所述数据源请求更新后的数据;
在接收更新后的数据之后,由所述单独的线程将所述更新后的数据存储在所述本地高速缓存中;以及
由所述单独的线程通知所述用户界面线程,更新后的数据已被存储在所述本地高速缓存中。
CN201210473640.5A 2011-11-21 2012-11-20 异步数据绑定 Active CN102937897B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/301,232 2011-11-21
US13/301,232 US8499122B2 (en) 2011-11-21 2011-11-21 Asynchronous data binding

Publications (2)

Publication Number Publication Date
CN102937897A true CN102937897A (zh) 2013-02-20
CN102937897B CN102937897B (zh) 2016-07-06

Family

ID=47696796

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210473640.5A Active CN102937897B (zh) 2011-11-21 2012-11-20 异步数据绑定

Country Status (4)

Country Link
US (2) US8499122B2 (zh)
EP (1) EP2783279B1 (zh)
CN (1) CN102937897B (zh)
WO (1) WO2013078022A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106164858A (zh) * 2014-04-02 2016-11-23 微软技术许可有限责任公司 数据视图展示机制
CN111213126A (zh) * 2017-10-16 2020-05-29 奥特瑞克斯股份有限公司 异步处理顺序数据块
CN111506337A (zh) * 2020-04-15 2020-08-07 中国银行股份有限公司 一种应用软件更新方法及装置
CN113542326A (zh) * 2020-04-17 2021-10-22 上海际链网络科技有限公司 分布式系统的数据缓存方法及装置、服务器、存储介质
CN114327707A (zh) * 2021-12-20 2022-04-12 凌云光技术股份有限公司 一种用户界面的刷新方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8499122B2 (en) 2011-11-21 2013-07-30 Microsoft Corporation Asynchronous data binding
WO2015187391A1 (en) * 2014-06-06 2015-12-10 Thomson Licensing Improvement to graphical user interface (gui) for updating multimedia over cable (moca)
US10359914B2 (en) 2014-11-25 2019-07-23 Sap Se Dynamic data source binding

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023271A (en) * 1998-06-11 2000-02-08 Sun Microsystems, Inc. Framework for binding data viewers/data manipulation with one to many objects through introspection
US6330006B1 (en) * 1998-05-12 2001-12-11 Silverstream Software, Inc. Method and apparatus for synchronizing an application's interface and data
US6378004B1 (en) * 1998-05-07 2002-04-23 Compaq Computer Corporation Method of communicating asynchronous elements from a mini-port driver
CN1620655A (zh) * 2003-05-17 2005-05-25 微软公司 用数据控制用户界面属性的系统和方法
CN1684034A (zh) * 2004-04-13 2005-10-19 微软公司 用以执行命令绑定的数据绑定机制的应用
CN1811765A (zh) * 2005-01-06 2006-08-02 微软公司 文字处理应用程序中的数据绑定
CN1834906A (zh) * 2005-03-15 2006-09-20 微软公司 丰富数据绑定应用程序
CN101114302A (zh) * 2006-07-24 2008-01-30 国际商业机器公司 用于更新portlet信息的方法和系统
CN101310271A (zh) * 2005-09-16 2008-11-19 微软公司 用于生产性套件应用程序和主宿的用户界面的接口

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6460058B2 (en) 1996-12-06 2002-10-01 Microsoft Corporation Object-oriented framework for hyperlink navigation
US7007244B2 (en) * 2001-04-20 2006-02-28 Microsoft Corporation Method and system for displaying categorized information on a user interface
US7506341B2 (en) 2003-05-17 2009-03-17 Microsoft Corporation System and method for controlling user interface properties with data
KR20060059335A (ko) 2004-07-09 2006-06-01 마이크로소프트 코포레이션 데이터에 따라 사용자 인터페이스 속성들을 제어하는시스템 및 방법
US20060089941A1 (en) 2004-10-21 2006-04-27 Microsoft Corporation Data source objects for producing collections of data items
US8499122B2 (en) 2011-11-21 2013-07-30 Microsoft Corporation Asynchronous data binding

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6378004B1 (en) * 1998-05-07 2002-04-23 Compaq Computer Corporation Method of communicating asynchronous elements from a mini-port driver
US6330006B1 (en) * 1998-05-12 2001-12-11 Silverstream Software, Inc. Method and apparatus for synchronizing an application's interface and data
US6023271A (en) * 1998-06-11 2000-02-08 Sun Microsystems, Inc. Framework for binding data viewers/data manipulation with one to many objects through introspection
CN1620655A (zh) * 2003-05-17 2005-05-25 微软公司 用数据控制用户界面属性的系统和方法
CN1684034A (zh) * 2004-04-13 2005-10-19 微软公司 用以执行命令绑定的数据绑定机制的应用
CN1811765A (zh) * 2005-01-06 2006-08-02 微软公司 文字处理应用程序中的数据绑定
CN1834906A (zh) * 2005-03-15 2006-09-20 微软公司 丰富数据绑定应用程序
CN101310271A (zh) * 2005-09-16 2008-11-19 微软公司 用于生产性套件应用程序和主宿的用户界面的接口
CN101114302A (zh) * 2006-07-24 2008-01-30 国际商业机器公司 用于更新portlet信息的方法和系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
丁红胜等: "用异步委托方法改进软件界面的快速响应", 《四川理工学院学报》 *
刘丁峰: "基于SWT的多线程解决方案", 《软件导刊》 *
范辉等: "《操作系统原理与实训教程》", 31 July 2006, 高等教育出版社 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106164858A (zh) * 2014-04-02 2016-11-23 微软技术许可有限责任公司 数据视图展示机制
CN111213126A (zh) * 2017-10-16 2020-05-29 奥特瑞克斯股份有限公司 异步处理顺序数据块
US11494409B2 (en) 2017-10-16 2022-11-08 Alteryx, Inc. Asynchronously processing sequential data blocks
CN111506337A (zh) * 2020-04-15 2020-08-07 中国银行股份有限公司 一种应用软件更新方法及装置
CN113542326A (zh) * 2020-04-17 2021-10-22 上海际链网络科技有限公司 分布式系统的数据缓存方法及装置、服务器、存储介质
CN113542326B (zh) * 2020-04-17 2023-04-25 上海际链网络科技有限公司 分布式系统的数据缓存方法及装置、服务器、存储介质
CN114327707A (zh) * 2021-12-20 2022-04-12 凌云光技术股份有限公司 一种用户界面的刷新方法

Also Published As

Publication number Publication date
EP2783279A4 (en) 2015-07-08
US8725949B2 (en) 2014-05-13
US20130132676A1 (en) 2013-05-23
US20130290251A1 (en) 2013-10-31
WO2013078022A1 (en) 2013-05-30
EP2783279B1 (en) 2022-10-26
EP2783279A1 (en) 2014-10-01
US8499122B2 (en) 2013-07-30
CN102937897B (zh) 2016-07-06

Similar Documents

Publication Publication Date Title
CN102937897A (zh) 异步数据绑定
CN104067257B (zh) 自动化事件管理系统,管理事件方法及事件管理系统
US10002153B2 (en) Remote data object publishing/subscribing system having a multicast key-value protocol
US10002154B1 (en) Computer data system data source having an update propagation graph with feedback cyclicality
CN102195970B (zh) 基于客户端会话的调试
CN102214200B (zh) 网页的可扩展动态执行操纵方法
CN101836201B (zh) 用于翻译声明性模型的方法及系统
CN111290854A (zh) 任务管理方法、装置、系统、计算机存储介质及电子设备
CN105453035B (zh) 用于接收对存储在计算机系统处的软件组件的更新的方法
CN102591744A (zh) 从任何群集节点的数据的备份和还原
EP2739097B1 (en) A mobile telecommunication device in a cellular-digital wireless telecommunication system and a method for operating thereof
CN103620599A (zh) 云存储
CN105229603A (zh) 控制对应用编程接口的运行时访问
CN105308566B (zh) 请求式可扩展定时器轮
CN102981911A (zh) 一种分布式消息处理系统及其中的设备和方法
CN110225087A (zh) 基于全局负载均衡的云存取方法、装置及存储介质
CN103034540A (zh) 分布式消息系统及其设备和协调方法
CN102929672A (zh) 应用升级系统及方法
WO2015153528A1 (en) Data view exposure mechanisms
CN109978392A (zh) 敏捷软件开发管理方法、装置、电子设备、存储介质
CN110377331A (zh) 发布应用程序的监控方法、装置、设备及存储介质
Bellavista et al. GAMESH: a grid architecture for scalable monitoring and enhanced dependable job scheduling
US10061676B2 (en) Remotely located timing method and device for a processing unit in an information processing system
CN114791925A (zh) 数据处理方法、装置、设备及计算机可读存储介质
US20140172955A1 (en) Distributed mobile enterprise application platform

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150722

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150722

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant