大家知道WPF中多线程访问UI控件时会提示UI线程的数据不能直接被其他线程访问或者修改,该怎样来做呢?分下面两种情况1.WinForm程序 1 2
1)第一种方法,使用委托: 3 private delegate void SetTextCallback(string text); 4 ...
分类:
编程语言 时间:
2014-05-14 03:01:21
阅读次数:
246
在使用多线程时,一般很少有多个线程完全独立的工作。往往是多个线程同时操作一个全局变量来获取程序的运行结果。多个线程同时访问同一个全局变量,如果都是读取操作,则不会出现问题。如果是写操作,则会发生错误。这时候,我们可以通过临界区,为全局变量设置一个保护,保证同时只有一个线程可以访问此变量,其他变量进入等待状态。
临界区(Critical Section)是一段独占对某些共享资源访问...
分类:
编程语言 时间:
2014-05-14 00:10:15
阅读次数:
399
这个错误很常见,基本上写线程操作都遇到过这个错误。根本原因是view控件的线程安全问题,通俗点讲就是所有的更新UI操作都需要在主线程(也就是UI线程中完成),而不能在新开的子线程中操作。
基本思路:既然子线程需要更新UI,但子线程自身又不能完成任务,所以只能通过建立一个通信机制,当子线程需要更新UI时,发消息通知主线程并将更新UI的任务post给主线程,让主线程来完成分内的UI更新操作。这个...
分类:
其他好文 时间:
2014-05-13 09:04:37
阅读次数:
311
前言
学习任何一个稍有难度的技术,要对其有充分理性的分析,之后果断做出决定---->也就是人们常说的“多谋善断";本系列虽然涉及的是socket相关的知识,但学习之前,更想和广大程序员分享的是一种心境微笑:学习是一个循序渐进的过程,心态应该随时调节,保持戒骄戒躁的状态。比如最近在看网易公开课MIT《算法导论》,老师提到,学习算法之前要计算机数学+离散数学+概率论等课程的知识,所以一直学不好算法的程序员不妨从基础入手,这都是中国式教育惹的祸啊!(此处省略一万字......)...
分类:
编程语言 时间:
2014-05-13 08:52:15
阅读次数:
394
Poco是一个开源的C++库,各方面功能比较全面,包括日志\多线程\文件系统\定时器\网络\配之文件等,同时使用也十分简单.
本文对其中的日志模块进行了简单的试用....
分类:
其他好文 时间:
2014-05-13 08:51:14
阅读次数:
431
/**
* 本来以为下面这段简单的代码(一个大项目里面的),不会有什么问题,结果却花了我一段时间才找出这个BUG所在,这段代码就是简单的加入一行字符串内容之后,将StringBuffer清空之后,再次加入一行字符串而已,大家来看看输出来的
* 内容是什么?不知道大家第一眼看到这段代码,有没有回答正确呢?也许你基本功比较扎实,觉得这根本不算个问题。...
分类:
其他好文 时间:
2014-05-13 08:42:59
阅读次数:
305
Person's solution 是用来一种基于软件的解决关键区域问题的算法(critical-section).
它并非完美的,有可能不正确地工作。而且是限制解决两个进程同步的问题。
但是它很简单,很原始,学习起来也是很轻松的。
代码如下:
do {
flag[i] = true;
turn = j;
while (flag[j] && turn == j...
分类:
编程语言 时间:
2014-05-13 08:01:01
阅读次数:
407
在并发编程时,一般使用runnable,然后扔给线程池完事,这种情况下不需要线程的结果。所以run的返回值是void类型。如果是一个多线程协作程序,比如菲波拉切数列,1,1,2,3,5,8...使用多线程来计算。但后者需要前者的结果,就需要用callable接口了。callable用法和runnab...
分类:
其他好文 时间:
2014-05-12 20:54:47
阅读次数:
491
参考:http://www.cnblogs.com/maitian-lf/p/3678128.html
分类:
编程语言 时间:
2014-05-12 20:23:08
阅读次数:
207