WPF DependencyObject 调用线程异常

2023-12-22

我有以下代码,它创建一个临时文件夹,并使用 FileSystemWatcher 轮询添加到 Location 属性上的文件夹中的文件,并将它们添加到列表中:Pastebin 上的 Scratchdisk.cs http://pastebin.com/3zcDnh0b。这个想法是创建一个 Scratchdisk 对象,并让 FFmpeg 将视频帧提取到其中,FileSystemWatcher 在 FFmpeg 创建这些文件时构建这些文件的列表,并且该列表作为我的 UI 绑定到的 DependencyObject 呈现。

我像这样绑定到 Scratchdisk 对象:

<ItemsControl ItemsSource="{Binding Source=ThumbnailScratchdisk, Path=FileList}">
...
</ItemsControl>

但在实际创建对象时,我得到以下异常:

A first chance exception of type 'System.InvalidOperationException' occurred in WindowsBase.dll

Additional information: The calling thread cannot access this object because a different thread owns it.

28号线get { return (List<string>)GetValue(FileListProperty); }

我想我需要一个 Dispatcher.Invoke 某处,但我不知道在哪里,我不知道在哪里创建第二个线程。我假设它与 FileSystemWatcher 写入文件列表有关。

有什么帮助吗?

Thanks!


我访问它的方式是这样的。它获取 UI 线程的 Dispatcher

System.Windows.Application.Current.Dispatcher.Invoke(
  (Action)(() => 
  {
      //Access the UI from here 
  }));

这里要注意的主要事情是,我所拥有的内容和您在评论中列出的内容之间,无论您是否在后台代码、视图模型、服务类中,无论您在何处,我的都会工作。并非所有物品都有Dispatcher对他们如此this.Dispatcher并不总是有效。

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

WPF DependencyObject 调用线程异常 的相关文章

  • Unix网络编程澄清

    我正在翻阅这本经典书籍Unix网络编程 https rads stackoverflow com amzn click com 0139498761 当我偶然发现这个程序时 第 6 8 节 第 179 180 页 include unp h
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 如何在 C# 中从 UNIX 纪元时间转换并考虑夏令时?

    我有一个从 unix 纪元时间转换为 NET DateTime 值的函数 public static DateTime FromUnixEpochTime double unixTime DateTime d new DateTime 19
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • 读写器的信号量解决方案:更新读取器计数和等待或发出读/写二进制信号量信号之间的顺序?

    从操作系统概念来看 在解决第一个读者 作者问题时 读者 进程共享以下数据结构 semaphore rw mutex 1 semaphore mutex 1 int read count 0 do wait rw mutex writing
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • PlaySound 可在 Visual Studio 中运行,但不能在独立 exe 中运行

    我正在尝试使用 Visual Studio 在 C 中播放 wav 文件 我将文件 my wav 放入项目目录中并使用代码 PlaySound TEXT my wav NULL SND FILENAME SND SYNC 我按下播放按钮 或
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • 上下文敏感与歧义

    我对上下文敏感性和歧义如何相互影响感到困惑 我认为正确的是 歧义 歧义语法会导致使用左推导或右推导构建多个解析树 所有可能的语法都是二义性的语言是二义性语言 例如 C 是一种不明确的语言 因为 x y 总是可以表示两个不同的事物 如下所述
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了

随机推荐

  • 在C++中创建模板时是否可以找到sizeof(T)?

    我正在尝试构建一个模板 让我可以使用可调整大小的数组 有没有办法找到sizeof T 我使用 malloc 而不是 new 因为我想在调整数组大小的函数中使用 realloc 这是我的类的构造函数出现错误 template
  • getElementsbyClassName 未显示[重复]

    这个问题在这里已经有答案了 我正在使用以下代码 当我现在点击按钮时
  • 使用 MVC 模型显示只读文本

    我有一个 MVC 模型 其属性定义为 DisplayName Service Version public string ServiceVersion get set 在屏幕上 我希望它显示为 服务版本 0 1 ServiceVersion
  • 删除变量的特定部分

    我想从 CMake 变量中删除特定库 Suppose LIB包含变量 A B C 的值 我知道用set像这样添加另一个变量 D 的内容 set LIB LIB D 但是我试图从中删除 C LIB喜欢关注 unset LIB C 这段代码不起
  • 如何捕获触摸板输入

    我到处寻找如何捕获笔记本电脑的触摸板输入 但我似乎找不到任何适用于 Chrome 扩展 JavaScript 的内容 问题 对于笔记本电脑上的触摸板 如何捕获向下的手指数量 不是单击 只是向下并可能像使用鼠标一样移动 相应的 x y 坐标以
  • 如何在 Python 中创建二维数组

    我试图在 Python 中创建一个索引的二维数组 但我总是以某种方式遇到错误 下面的代码 Declare Constants no real constants in Python PLAYER 0 ENEMY 1 X 0 Y 1 AMMO
  • Chrome扩展程序中使用axios和webpack时出现TypeError:adapter is not a function错误

    我正在构建一个 chrome 扩展 当从内容脚本收到某些消息时 该扩展需要进行 API 调用 我在发出 HTTP 请求时遇到困难 我相信我的 webpack 配置是罪魁祸首 我尝试过使用node fetch and axios两者都不适合我
  • 我应该使用哪个 jsf-impl?

    在哪里可以找到适用于我的 jsf 2 webapp 的 jsf impl 在 Maven 的仓库中我得到了 1 2 版本 In the http download java net maven 2 javax faces http down
  • 在全球范围内使用 reCAPTCHA

    我正在尝试按照以下网址中的说明在全球范围内使用 reCAPTCHAhttps developers google com recaptcha docs faq can i use recaptcha globally https devel
  • Log4Net RollingFileAppender 生成重复日志

    我有一个在单个服务器上运行的 WCF 服务 使用 Log4net 通过 INFO 和 WARN 级别日志条目跟踪使用情况 使用具有以下非常标准配置的 RollingFileAppender
  • 使用 FileUpload 控件一次将多个图像保存到数据库

    我正在一家公司博客网站上工作 当用户发布帖子时 他们可以将计算机中的图像添加到帖子中 我使用 FileUpload 控件来执行此操作 效果很好 但是 我正在尝试更改功能以允许用户在一篇文章中选择和上传多个图像 但我遇到了一些问题 我已将 允
  • ASP.NET MVC5 每个 Razor 页面首次加载时非常慢

    这与以下情况下的延迟体验不同 第一个请求到达 但这是每次第一次访问基于 Razor 的视图时都会遇到的延迟 可能需要一两秒 对该视图的所有后续请求都非常快 即使对于不执行任何类型的编程工作 例如访问数据库等 的简单视图 也会发生这种情况 我
  • 在添加另一个视图之前检查布局膨胀器中是否存在视图

    在我的 android 项目中 我动态地将表单添加到我的线性布局中 然后在使用按钮完成后销毁它们 但是 当我单击 添加按钮 时 它会无限添加更多表单 尽管我一次只想要一个 我如何检查我的 LinearLayout 帐户 是否已添加到视图中或
  • Elasticsearch / lucene 高亮

    我正在使用 ElasticSearch 来索引文档 我的映射是 mongodocid boost 1 0 store yes type string fulltext boost 1 0 index analyzed store yes t
  • ListBox 中的“Items.Clear()”后“SelectedIndexChanged”未触发

    对于列表框 选择模式设置为 一 我希望跟踪是否有选定的项目或没有选定的项目 为此 我订阅了 SelectedIndexChanged 的 方法并检查 SelectedIndex 是否为 1 但是 我注意到调用 Items Clear 后该事
  • 在 ExtJS 中突出显示/选择网格行

    我是 Ext JS 的新手 我正在开发一个网格面板 当我选择 单击任何行时 与所选行相关的某些数据将显示在网格下方的面板中 此外 当加载窗口时 默认情况下应选择 突出显示第一个窗口 目前网格和面板已正确显示 即使与所选行相关的数据也会显示在
  • Angular2 FileSaver.js

    我将 FileSaver js 与 Angular 2 一起使用 效果很好 但是 我在构建中遇到语义错误 错误 TS2304 找不到名称 saveAs 我正在使用 Angular 2 种子并将库添加到我的 project config 中
  • Apache Ivy:本地ivy缓存和本地存储库之间的区别

    默认情况下 ivy 在你的目录下安装了一个 本地缓存
  • iOS是静态框架还是动态框架?

    这可能听起来像一个愚蠢的问题 但如果您有第三方 Party framework 文件 您能判断它是静态还是动态吗 我的意思是 如果你往里面看 它们看起来有什么不同吗 两者都可以 然而 只有 iOS8 才允许应用程序包中使用动态框架 找出答案
  • WPF DependencyObject 调用线程异常

    我有以下代码 它创建一个临时文件夹 并使用 FileSystemWatcher 轮询添加到 Location 属性上的文件夹中的文件 并将它们添加到列表中 Pastebin 上的 Scratchdisk cs http pastebin c