C#多线程问题的解决

 时间:2024-10-21 20:02:02

1、就比如我在WPF 编程的时候,遇到这样的一个报错,The calling thread cannot access this object because a different thread owns it.原因是我使用了每隔几秒钟使用一次该程序,该程序不断的被使用,导致不同噢乖的线程在使用它。

C#多线程问题的解决

2、我这咐搭趔涮边没有使用多线程,所以会报出这样的错误,最后我到网上去搜索了一下,针对这一的程序我该如何处理,果不其然,找到了处理的方法, Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Send,new Action(delegate() this.datagrid.ItemsSource = null; this.page.ShowPages(this.datagrid, table, MaxPageNum); }));

C#多线程问题的解决

3、发现这样的话,还是会报错,这就说明这个异步调用还是没有实现我的这个程序的多次调用,原因还是因为非UI线程访问了UI控件,这个时候,又陷入迷糊了。

C#多线程问题的解决

4、之后我又上网搜索关于WPF线程的问题,给出的解释是这样的:WPF应用程序都至少有两个线程,一个用于UI绘制,其隐藏于后台,另一个用于管理UI,包括用响应用户输入执行后台代码等

C#多线程问题的解决

5、最后我通过不断的搜索了一个关于Application对象的使用,它也是用于多线程调用的,只是它的搜索范围更广。这个例子是这样的:S烤恤鹇灭ystem.Windows.Application.Current.Dispatcher.Invoke(newSystem.Action(()=>{IPrism.progressBar.Show();}));

C#多线程问题的解决

6、然后我就用到我的程序中,这里更改很简单,把代码中的“Dispatcher.CurrentDispatcher”改成“Application.Current.Dispatcher”应该就可以了。然后通过运行,这个问题解决了,也可以不断的刷新了。

C#多线程问题的解决
  • Visio软件中如何绘制COM和OLE图
  • UltraEdit24无法显示中文的解决办法
  • C# 如何在Excel中查找、替换、高亮数据
  • Acrobat开启允许文档隐藏菜单栏、工具栏选项
  • OneNote如何添加学生行宽基准线?
  • 热门搜索
    云南旅游服务网 印度旅游要花多少钱 常州旅游局 唐山旅游网 中国旅游胜地排行榜 粤西旅游景点大全 荥阳旅游景点大全 福建泰宁旅游 疯狂旅游团小品 湖北省旅游景点大全