gpt4 book ai didi

multithreading - 在非 UI 线程上运行 RIA 服务

转载 作者:行者123 更新时间:2023-12-04 04:28:02 24 4
gpt4 key购买 nike

我正在尝试从非 UI 线程进行 RIA 服务调用。
我通过打开新线程和后台工作人员进行了调用,但对于这两种情况,回调都在 UI 线程上运行。
是否可以在调用者线程而不是 UI 上执行回调?
谢谢

最佳答案

tl;博士

  • 使用 WCF
  • 自己将结果编码到 UI 线程

  • WCF RIA 旨在处理 UI 线程

    WCF RIA 旨在主要在 UI 线程上工作。这显然有很多优点和缺点。在你的情况下主要是缺点。我很难找到有关此设计的明确文档,但是,通过确认 UI 线程化来回答有关该主题的大多数问题。
  • Here is a post来自 WCF RIA QA 团队的一名成员,表明仅 UI 线程处理。
  • 安迪法语 describes the callbacks marshalling to the UI thread :

  • The Domain Context Load and SubmitChanges execute asynchronously. They take a thread from the thread pool, make the necessary calls to the server, and when those calls complete the work is automatically marshalled back to the UI thread to modify the entity collections and subsequently update the UI (probably via INotificationChanged).



    如果您使用 WCF 获取自己的数据,则可以在您喜欢的任何线程上进行。调用完成后,您将不得不编写(或借用)代码来更新 UI 线程上的 UI 以避免 cross thread exceptions .

    IMO,WCF RIA 的主要优点提供简单的问题简单的解决方案:
  • 在服务器和客户端之间重用代码的好工具
  • 服务和客户端代码始终兼容
  • 向/从客户端/服务器传输数据相对简单
  • WCF RIA 非常固执,导致易于学习的编码模式

  • 缺点使难题变得困难或不可能:
  • WCF RIA 是 strongly opinionated不遵循该意见是痛苦的或不可能的
  • 所有操作都返回UI线程,经常导致性能问题
  • 有一些巫术可以实现最大量的客户端+服务器代码重用
  • 关于multithreading - 在非 UI 线程上运行 RIA 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11970092/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com