关于线程中的一些原则行东西

一般,在线程中使用内存的模式是,线程最初

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];

    而在线程结束的时候 [pool drain] 或 [pool release]。

子线程中描画窗口

    多线程编程中普遍遵循一个原则,就是一切与UI相关的操作都有主线程做,子线程只负责事务,数据方面的处理。那么如果想在子线程中更新UI时怎么做呢?如果是在windows下,你会 PostMessage 一个描画更新的消息,在iPhone中,需要使用performSelectorOnMainThread 委托主线程处理。

    比如,如果在子线程中想让 UIImageView 的 image 更新,如果直接在线程中

imageView.image = [UIImage imageNamed:@"Hoge.png"];

    这么做,什么也不会出现的。需要将该处理委托给主线程来做,像下面:

[delegate performSelectorOnMainThread:@selector(theProcess:) withObject:nil waitUntilDone:YES];

    就OK了!

阅读更多
个人分类: iPhone
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭