如何将 Observable.FromEvent 与静态事件一起使用?

2023-12-29

我正在尝试使用反应式扩展编写代码来处理异步调用,其中启动方法和完成的事件都是静态的。我不能使用

var languageSetsLoaded = Observable
  .FromEvent<LoadLanguageSetsCompletedEventArgs>(
    LanguageManager, "LanguageSetsLoaded")

由于 LanguageManager 是一个静态类而不是一个实例,所以我尝试了

var languageSetsLoaded = Observable
  .FromEvent<LoadLanguageSetsCompletedEventArgs>(
    h => LanguageManager.LanguageSetsLoaded += h,
    h => LanguageManager.LanguageSetsLoaded -= h )

但这会产生语法错误“无法将 lambda 表达式转换为类型‘object’,因为它不是委托类型”。该事件如此声明

public delegate void LoadLanguageSetsCompletedHandler(LoadLanguageSetsCompletedEventArgs e);
public static event LoadLanguageSetsCompletedHandler LanguageSetsLoaded = delegate { };

所以我认为它是一个委托类型,也许它是静态的这一事实会产生误导性的错误描述。

他们是否有某种方法可以做到这一点,或者我只是必须坚持这样的非反应性代码?

private void ChangeLanguage(string languageCode)
{
  LanguageManager.LanguageSetsLoaded += OnLanguageSetsLoaded;
  LanguageManager.LoadLanguageSets(languageCode, BaseApp.InTranslationMode);
}

private void OnLanguageSetsLoaded(LoadLanguageSetsCompletedEventArgs e)
{
  LanguageManager.LanguageSetsLoaded -= OnLanguageSetsLoaded;
  OnPropertyChanged("DummyLanguageResource");
}

我认为问题在于您的活动的委托类型。尝试将其更改为:

public static event EventHandler<LoadLanguageSetsCompletedEventArgs> 
    LanguageSetsLoaded = delegate { };

如果你看一下签名Observable.FromEvent您尝试使用的,它看起来像这样:

public static IObservable<IEvent<TEventArgs>> FromEvent<TEventArgs>(
    Action<EventHandler<TEventArgs>> addHandler,
    Action<EventHandler<TEventArgs>> removeHandler
)
where TEventArgs : EventArgs

或者,您可以使用具有以下功能的重载:three参数,第一个是转换处理程序 - 但我认为如果可能的话,最好只更改事件签名。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Observable.FromEvent 与静态事件一起使用? 的相关文章

  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 如何在flutter中制作动态图表?

    您好 我尝试在 flutter 中制作一个简单的图表 其中 x 轴为日期 Y 轴为数据 当我按下按钮时 当前日期的数据会增加 第一个目标通过以下代码完成 但现在我不知道如何使图表更加动态 我想要统计每个新的一天我按下的按钮 我不知道如何为每
  • 当我只绘制更大的轮廓对象时,Python Opencv drawContours 失败

    我正在尝试绘制最大物体的轮廓 首先 我将显示绘制所有轮廓的图像 为了找到最大的物体 我使用了这段代码 maxsize 0 best 0 count 0 for cnt in contours if cv2 contourArea cnt g
  • 获取旋转后di​​v角点像素位置

    在设置了旋转弧度 度数后 如何计算 div 的左上角 左下角 右上角 右下角像素位置 举个例子会很有帮助 假设旋转相对于中心四个角的坐标也相对于同一原点 每个点 a b where a and bdiv的半宽和半高需要乘以变换矩阵 cos
  • 输入::file() 返回 null Laravel

    我一直在编写一个上传脚本 即使我使用 Laravel 内置函数 Input file 它仍然返回 null 我将发布我的家庭控制器代码 public function handleUpload user Auth user username
  • Coldfusion 和 Linkedin API 工作示例 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人设法让 LinkedIn API 在 Coldfusion 应用程序中运行吗 Linkedin 开发
  • 贡献给状态栏的控件不可见

    我想在工作台窗口的状态栏中放置一个控件 整个过程应该是直接的 但无论我尝试什么 状态栏的贡献都不会变得可见 因为我没有做own应用程序 但只是向 IDE 提供一个插件 WorkbenchWindowAdvisor和朋友不是一个选择 扩展点是
  • HTML 提交按钮:不同的值/按钮文本?

    我想创建一个 HTML 表单提交按钮value add tag 但是 该网页是瑞典语的 所以我想要一个不同的按钮文字 也就是说 我想要一个像这样的按钮 但我想让我的代码像 if request getParameter cmd equals
  • 如何改变 DataFrame?

    我正在尝试从数据框中删除一些列 并且不希望返回修改后的数据框并将其重新分配给旧数据框 相反 我希望该函数只修改数据框 这是我尝试过的 但它似乎并没有做我所除外的事情 我的印象是参数是作为参考传递的 而不是按值传递的 function rem
  • 这个严格的别名示例正确吗?

    在过去的一周左右的时间里 我一直在阅读严格的别名规则 并遇到了这篇文章 了解 C C 严格别名 http dbp consulting com tutorials StrictAliasing html 本文介绍了几种交换 32 位整数的一
  • 打开模板文件时自动显示表单,来自资源管理器的 dotm

    我编写了一个基于表单的文档生成宏 用 VBA 编写 以便分发给销售团队 为了便于使用 我想提供一个独立的文件 该文件在打开文档后将立即显示该表单 使用 AutoOpen 如果 word 已经打开并且 dotm 文件已在其中打开 我可以让表单
  • 哪些 Google OAuth2 范围被视为“敏感”的列表在哪里?

    据我了解 Google OAuth2 范围大致分为三个部分 按从最难获准使用到最难的顺序排列 限制范围 灵敏范围 其他一切 我在这里找到了限制范围列表 https support google com cloud answer 911091
  • 如何在 pandas 中创建“排名”列?

    我正在尝试对专栏进行排名 col 1 在熊猫中 如果有平局 我想看另一栏 col 2 只是为了那些记录并打破平局 如果即使在该列中它们也相同 我只想随机分配排名 但每一行必须有唯一的排名 Example col1 col 2 Rank 20
  • 刷新 iFrame(缓存问题)

    我们遇到了一个奇怪的问题 我们不确定到底是什么原因造成的 让我详细说明一下这个问题 假设 我们有两个不同的html页面a html和b html 还有一个用index html编写的小脚本
  • 品牌形象太大且在 Bootstrap 导航栏上未对齐

    我的网站上的导航栏品牌出现一些问题 我希望它看起来垂直对齐并且尺寸较小 您能否建议如何实现这一点 div class navbar navbar default navbar fixed top style background color
  • Windows Powershell - 使用文本文档中的列表重命名文件列表

    我尝试使用以下代码重命名文件文件夹 C www folderx 使用文本列表 list txt 但我不知道如何获取当前文件索引 Get Childitem C www folderx OldName name NewName GC list
  • 使用 iText 从 pdf 文件获取文本字体

    我一直在尝试使用 iText 库提取 pdf 文档中每个单词的属性 字体 字体大小 颜色等 我可以从每个页面中提取文本 但不能提取属性 我也没有找到任何可以提供相同功能的东西 请帮我 我不是 Java 人员 所以我无法为您提供工作代码 但希
  • jsp PageContext 对象的生命周期是怎样的 - 它是线程安全的吗?

    jsp PageContext 对象是作为 http 请求 响应周期的一部分创建和销毁的 还是在请求之间缓存和重用 PageContext 具有建议在请求之间重用的生命周期方法 即初始化 释放 如果重用它们 可能会造成严重的并发问题 如果两
  • 在运行时设置 ImageView 的大小(以 px 为单位)

    我想使用整个可用宽度将 8 个图像拇指放在一条水平线上 这些图像是从网络服务中检索的 它允许我指定尺寸 我尝试了以下方法 int widthPx container getWidth LinearLayout thumbs LinearLa
  • 如何将自定义对象转换为 Data Swift

    我有一个自定义结构 它的类型属性是其他具有不可编码类型的结构 它是结构中结构的复杂树 我需要将其转换为数据以便保存它 我需要保存这个结构 聊天 struct Chat var dictOfRecentMessages String Mess
  • 如何将 Observable.FromEvent 与静态事件一起使用?

    我正在尝试使用反应式扩展编写代码来处理异步调用 其中启动方法和完成的事件都是静态的 我不能使用 var languageSetsLoaded Observable FromEvent