最近碰到这种多线程问题都是在WPF项目中。

1. 问题是这样。有个一主界面线程,然后background线程启动,这个background线程试图去修改主界面里面的数据。

造成死锁。

调用过程,主界面-->Call function --> list.add()   -->ok

background线程-->Call function --> list.add()   -->error

解决非常简单,用Invoke来往List中添加变量:

Application.Current.Dispatcher.Invoke(new Action(() => collection.Add(item)));

WPF多线程问题的更多相关文章

  1. WPF多线程UI更新——两种方法

    WPF多线程UI更新——两种方法 前言 在WPF中,在使用多线程在后台进行计算限制的异步操作的时候,如果在后台线程中对UI进行了修改,则会出现一个错误:(调用线程无法访问此对象,因为另一个线程拥有该对 ...

  2. WPF多线程演示

    WPF中的几种处理线程的工作方式: 1.简单的DispatcherTimer类似Timer控件 2.需要处理UI同步时,Dispatcher DispatcherOpertion 3.增强的Threa ...

  3. WPF 分页控件 WPF 多线程 BackgroundWorker

    WPF 分页控件 WPF 多线程 BackgroundWorker 大家好,好久没有发表一篇像样的博客了,最近的开发实在头疼,很多东西无从下口,需求没完没了,更要命的是公司的开发从来不走正规流程啊, ...

  4. WPF 多线程异常抛送到UI线程

    无论是winform还是WPF,在.NET 2.0之后 只要是多线程中产生了异常都会导致程序强制结束. 那么我们一般的做法是将未知的多线程的异常抛送到UI线程去,然后进行处理.. 正确的多线程中的异常 ...

  5. WPF多线程访问控件

    大家知道WPF中多线程访问UI控件时会提示UI线程的数据不能直接被其他线程访问或者修改,该怎样来做呢? 分下面两种情况 1.WinForm程序 1)第一种方法,使用委托: private delega ...

  6. WPF 多线程 UI:设计一个异步加载 UI 的容器

    对于 WPF 程序,如果你有某一个 UI 控件非常复杂,很有可能会卡住主 UI,给用户软件很卡的感受.但如果此时能有一个加载动画,那么就不会感受到那么卡顿了.UI 的卡住不同于 IO 操作或者密集的 ...

  7. WPF多线程UI更新

    前言 在WPF中,在使用多线程在后台进行计算限制的异步操作的时候,如果在后台线程中对UI进行了修改,则会出现一个错误:(调用线程无法访问此对象,因为另一个线程拥有该对象.)这是很常见的一个错误,一不小 ...

  8. WPF多线程更新UI的一个解决途径

    那么该如何解决这一问题呢?通常的做法是把耗时的函数放在线程池执行,然后切回主线程更新UI显示.前面的updateTime函数改写如下: private async void updateTime()  ...

  9. WPF多线程下载文件,有进度条

    //打开对话框选择文件         private void OpenDialogBox_Click(object sender, RoutedEventArgs e)         {     ...

随机推荐

  1. httpclient post请求实例(自己写的)

    package com.gop.gplus.trade.common.utils; import org.apache.commons.httpclient.HttpClient;import org ...

  2. (转)Linux整合apache和tomcat构建Web服务器

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://wenzhongxiang.blog.51cto.com/6370734/1285 ...

  3. Jmeter压力测试环境准备

    Jmeter性能监控 配置好测试机器上的jmeter环境:http://jmeter-plugins.org/downloads/all/ 网站下载两个东西: JMeterPlugins-Standa ...

  4. AndroidUI开源组件库BottomView 第三方自定义UI控件

    这里分享一个Android的非常经典实用而且简单方便的第三方UI控件库:BottomView(小米的米UI也用到了这个) 原文  http://blog.csdn.net/opzoonzhuzheng ...

  5. 解决Wamp 开启vhost localhost 提示 403 Forbbiden 的问题!

    非常奇怪的一个问题.我曾经从来都没有这样过!訪问 http://localhost/ 提示  403 Forbbiden. 我之前的设置一直都是这种: httpd.conf <Directory ...

  6. MFC 点击改变文本 加法计时器 伸缩窗体

    1.添加所需控件,设置ID:labNum1,txtNum1.txtNum2.txtNum3.btnAdd,并将labNum1的属性Notify->true(控件在被单击或双击时可以发送消息) 2 ...

  7. 使用PHP对数据库输入进行恶意代码清除

    这是一个有用的PHP函数清理了所有的输入数据,并删除代码注入的几率. function sanitize_input_data($input_data) { $input_data = trim(ht ...

  8. 棋盘上的距离 - Grids1657

    棋盘上的距离 问题描述: 写一个程序,给定起始位置和目标位置,计算王.后.车.象从起始位置走到目标位置所需的最少步数. 王:横.直.斜都可以走,但每步限走一格. 后:横.直.斜都可以走,每步格数不受限 ...

  9. 新鲜博客出炉www.pubwin2009.net

    既然不快乐,又不喜欢这里,不如一路向西去大理.不是说不喜欢博客园,而是不喜欢现在工作的公司已经向公司递了辞职申请,然后突然有个想把,就是把公司里学到的东西做一个总结,全部写下来正好阿里云可以有免费半年 ...

  10. Page.ClientScript.RegisterStartupScript函数的使用

    Page.ClientScript.RegisterStartupScript(type,key,script,addScriptTags);type要注册的启动脚本的类型.key要注册的启动脚本的键 ...