shaneplot

2011年8月1日 #

iphone程序的生命周期(执行过程)

摘要: 做iphone开发首先第一件就是得知道iphone程序的生命周期,说白点就是当点击程序图标启动程序开始到退出程序整个使用运行过程中底下的代码都发生了什么,只有理解了这个才能游刃有余的掌握Iphone程序的开发,否则在写程序的时候有点浑浑僵僵不知所以然的感觉。首先忘记Xcode给我们生成的代码模板,忘记xib忘记ib,我们亲自一行一行来写一个HelloWorld程序,虽然真正开发项目的时候并不需要这样做Xcode模板和ib都会为我们做好这些打杂的事情,但是现在完全由我们自己来写,放心这个程序是个非常的简单的HelloWorld 程序,代码也很少总共加起来不过10几行。 在这之前我们先来看看obj 阅读全文

posted @ 2011-08-01 09:46 shanechow 阅读(830) 评论(0) 推荐(0) 编辑

2011年7月6日 #

由C#转Object-C开发入门基础

摘要: 大部分有一点其他平台开发基础的初学者看到XCode,第一感想是磨拳擦掌,看到 Interface Builder之后,第一感想是跃跃欲试,而看到Objective-C的语法,第一感想就变成就望而却步了。好吧,我是在说我自己。如果你和我一样,对苹果相关的开发:Mac OS X或是iPhone有兴趣,但是第一时间看到Objective-C就会头疼并伴有发烧症状的话,疗效比较好的快速治疗方法是阅读本文。大概花二十分钟左右,而且绝不无聊的时间,你就会对Objective-C有那么一点点了解,至少读读例子不会那么头疼了。不过假定你要有那么一点点c++、c#或是java的基础,至少能看到c++、c#或是 阅读全文

posted @ 2011-07-06 09:25 shanechow 阅读(1537) 评论(1) 推荐(0) 编辑

2010年11月30日 #

UI线程外部线程调用UI控件简易处理方法

摘要: 假如我们有一个WinForm对象,其中有一个Text标签需要根据其他线程传过来的参数改变显示参数的值。改变Text标签的方法是:private void ChangeText(string text){ this.Text = "参数是:" + text;}由于ChangeText的参数text是另外线程(假设是线程A)传送过来的,那么ChangeText方法就得作为线程A的一个事件对应的委托的签名方法。A.ChangeTexted += new CbSimpleString(ChangeText);其中CbSimpleString是带1个string参数的委托,自定义类型 阅读全文

posted @ 2010-11-30 15:47 shanechow 阅读(490) 评论(0) 推荐(0) 编辑

2010年5月4日 #

(转)HeadFirst设计模式学习笔记(C#版):鸭子与策略(Strategy)模式

摘要: 策略模式的设计原则如下: 1. 将应用中需要经常变化的代码独立出来,应和那些不需要经常变化的代码分开。 2. 应针对接口,而不是类进行编程。 3. 在类中应多用组合,少用继承。 例子: 我们要实现一个鸭子模拟器,这个鸭子模拟器由Duck类描述,而Duck类有如下4个行为: 1. display 2. swim 3. fly(飞) 4. quack(叫) 其中swim是所有鸭子都具有的特性,而且所有鸭子的这些特性都相同,因此,这个方法可以直接在Duck类中实现。display方法也是所有鸭子具有的特性,但随着鸭子的种类不同,display也有所不同,因此,display方法应为Duck类的抽象方 阅读全文

posted @ 2010-05-04 15:16 shanechow 阅读(283) 评论(0) 推荐(0) 编辑

(转)C#线程系列讲座(5):同步技术之Monitor

摘要: 在上一讲介绍了使用lock来实现线程之间的同步。实际上,这个lock是C#的一个障眼法,在C#编译器编译lock语句时,将其编译成了调用Monitor类。先看看下面的C#源代码:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->publicstaticvoidMyLock(){lock(typeof(Program)){}} 上面的代码通过lock语句使MyLock同步,这个方法被编译成IL后,代码如图1所示。 图1 从上图被标注的区域可以看到 阅读全文

posted @ 2010-05-04 14:57 shanechow 阅读(247) 评论(0) 推荐(0) 编辑

(转)C#线程系列讲座(4):同步与死锁

摘要: 虽然线程可以在一定程度上提高程序运行的效率,但也会产生一些副作用。让我们先看看如下的代码:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->classIncrement{privateintn=0;privateintmax;publicIncrement(intmax){this.max=max;}publicintresult{get{returnn;}set{n=value;}}publicvoidInc(){for(inti=0;i&l 阅读全文

posted @ 2010-05-04 14:40 shanechow 阅读(215) 评论(0) 推荐(0) 编辑

(转)C#线程系列讲座(3):线程池和文件下载服务器

摘要: 如果设计一个服务器程序,每当处理用户请求时,都开始一个线程,将会在一定程序上消耗服务器的资源。为此,一个最好的解决方法就是在服务器启动之前,事先创建一些线程对象,然后,当处理客户端请求时,就从这些建好的线程中获得线程对象,并处理请求。保存这些线程对象的结构就叫做线程池。 在C#中可以通过System.Threading.ThreadPool类来实现,在默认情况下,ThreadPool最大可建立500个工作线程和1000个I/O线程(根据机器CPU个数和.net framework版本的不同,这些数据可能会有变化)。下面是一个用C#从线程池获得线程的例子:Code highlighting pr 阅读全文

posted @ 2010-05-04 10:04 shanechow 阅读(255) 评论(0) 推荐(0) 编辑

(转)C#线程系列讲座(2):Thread类的应用

摘要: 一、 Thread类的基本用法通过System.Threading.Thread类可以开始新的线程,并在线程堆栈中运行静态或实例方法。可以通过Thread类的的构造方法传递一个无参数,并且不返回值(返回void)的委托(ThreadStart),这个委托的定义如下:[ComVisibleAttribute(true)]public delegate void ThreadStart()我们可以通过如下的方法来建立并运行一个线程。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighl 阅读全文

posted @ 2010-05-04 09:29 shanechow 阅读(297) 评论(0) 推荐(0) 编辑

C#委托的异步调用

摘要: 本文将主要通过“同步调用”、“异步调用”、“异步回调”三个示例来讲解在用委托执行同一个“加法类”的时候的的区别和利弊。首先,通过代码定义一个委托和下面三个示例将要调用的方法:/*添加的命名空间usingSystem.Threading;usingSystem.Runtime.Remoting.Messaging;*/ publicdelegateintAddHandler(inta,intb);publicclass加法类{publicstaticintAdd(inta,intb){Console.WriteLine("开始计算:"+a+"+"+b);T 阅读全文

posted @ 2010-05-04 09:05 shanechow 阅读(1227) 评论(2) 推荐(0) 编辑

(转)C#线程系列讲座(1):BeginInvoke和EndInvoke方法

摘要: 开发语言:C#3.0IDE:Visual Studio 2008本系列教程主要包括如下内容:1. BeginInvoke和EndInvoke方法2. Thread类3. 线程池4. 线程同步基础5. 死锁6. 线程同步的7种方法7. 如何在线程中访问GUI组件一、线程概述在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提供程序的性能,将要执行的任务分解成多个子任务执行。这就需要在同一个进程中开启多个线程。我们使用C#编写一个应用程序(控制台或桌面程序都可以),然后运行这个程序,并打开windows任务管理器,这时我们就会看到这个应用程序中所含 阅读全文

posted @ 2010-05-04 08:50 shanechow 阅读(433) 评论(0) 推荐(0) 编辑

导航