大家知道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
在并发编程时,一般使用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
AfxBeginThread是MFC的全局函数,是对CreateThread的封装。CreateThread是Win32
API函数,前者最终要调到后者。_beginthread是C的运行库函数
分类:
编程语言 时间:
2014-05-12 03:09:01
阅读次数:
243
1、多线程线程与进程的区别多个进程的内部数据和状态都是完全独立的,而多线程是共享一块内存空间和一组系统资源,有可能互相影响.
?线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换比进程切换的负担要小。多线程编程的目的,就是"最大限度地利用CPU资源",当某一线程的处理不需...
分类:
编程语言 时间:
2014-05-12 01:27:24
阅读次数:
503
推荐阅读:C#线程系列讲座(1):BeginInvoke和EndInvoke方法C#线程系列讲座(2):Thread类的应用C#线程系列讲座(3):线程池和文件下载服务器C#线程系列讲座(4):同步与死锁C#线程系列讲座(5):同步技术之Monitor
分类:
编程语言 时间:
2014-05-12 01:07:56
阅读次数:
309
public class ThreadTest implements Callable {
public String call() throws Exception {
// TODO Auto-generated method stub
wait(10000);
return "hello";
}
}调用代码:
public static void main(Stri...
分类:
编程语言 时间:
2014-05-11 21:27:24
阅读次数:
533
涉及到内存管理,只读,多线程等很多功能时,setter和getter方法也就没那么简单了;当然@property依然强大,很好用; 1:内存管理相关参数:
*:retain: (如果是oc对象类型),生成的setter会自动release旧值,retain新值; *:assign:...
分类:
其他好文 时间:
2014-05-11 17:59:45
阅读次数:
306