Archive for 05月, 2009

c# 多线程编程 <转>

05月 22nd, 2009

一.多线程的概念

Windows是一个多任务的系统,如果你使用的是windows 2000及其以上版本,你可以通过任务管理器查看当前系统运行的程序和进程。什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的,线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。浏览器就是一个很好的多线程的例子,在浏览器中你可以在下载JAVA小应用程序或图象的同时滚动页面,在访问新页面时,播放动画和声音,打印文件等。

多线程的好处在于可以提高CPU的利用率——任何一个程序员都不希望自己的程序很多时候没事可干,在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就大大提高了程序的效率。

然而我们也必须认识到线程本身可能影响系统性能的不利方面,以正确使用线程:

线程也是程序,所以线程需要占用内存,线程越多占用内存也越多
多线程需要协调和管理,所以需要CPU时间跟踪线程
线程之间对共享资源的访问会相互影响,必须解决竞用共享资源的问题
线程太多会导致控制太复杂,最终可能造成很多Bug Read more »

入室抢劫

05月 17th, 2009

在美国,每个15秒钟就有人举报一起入室行窃案,统计数据显示,去年窃贼逛够了两百多万户人家。人们实际上几乎无法将蓄意行窃的盗贼拒之门外,所以做得只是设法拦截他片刻,从而使其暴露在巡警或者附近溜达的人们面前。常识告诉我们,光照是犯罪行为的障碍物。家门口必须安装一盏灯,并在晚上开着。不管是否相信,有些人,尤其是最晚进家的孩子,晚上进屋后不把门锁上。空心门,即便是锁上了,也容易遭贼入侵。因此最好选择实心门或者铁门,因为窃贼很难将它们撬开。如果你有意购买报警装置,别忘了索要报警器的标志,并把它们贴在窗户和门上。最后,提醒一句,外出旅游时,一定要请一位信得过的邻居,再你回来前,收好每日的报纸和邮件。这是因为放在门阶上或邮箱里成堆的报纸邮件如同广告一样让大家都知道你家里没人。

Read more »

进入ASP.NET的学习领域

05月 17th, 2009

最近一周进入了ASP.NET的学习中,把《visual studio 2005从入门到精通》看了个大概,也没明白个究竟,看来这本书还就是让你会操作visual studio的,而不是讲知识的。不过发现自己在接触新的东西的时候,往往在没有老师的指点下,一般都是撞得“头破血流”之后自己才有了如梦初醒的感觉。之后老师在那么一讲解,就有醍醐灌顶的感觉了。最近一周的生活有点混乱,每天都到晚上3点钟才睡着。早上的时间基本上就没办法利用。

我的英语啊,要考四级呀。英语还是要背诵的,必须抽出时间读英语。这是必要的。不然四级铁定考不过,以后再看个英文的技术文章,就不用每每的拿着个词典在那查啊查的了。在博客里面新开个英语的栏目,把我背诵过得,写过的文章发一下,惊醒一下自己吧。

c#的所涉及的范畴,学了已经多过半个学期了。有了一个大概。如果现在让我做一个winform我想,我自己肯定做不出来,现在心里对winform也没有很清晰的轮廓。就凭课本那本书还远远的不够,多看书,看经典教材。争取自己做一个桌面程序出来,自己看看。心里也有个底。还是要理解面向对象。深入的理解。

哎,学习的过程总是这样子

05月 2nd, 2009

好久没有认真的写过代码了,这个学期本来也是刚开始学习c#,今天做了个MDI窗体的记事本,费劲脑子,最终有个问题还是没有解决,感觉自己还是不能从总体上把握面向对象,用空间用的多了,就不知道该怎么手写函数了。抄别人的代码抄的多了,就不会自己写代码了。一帆风顺的学习过程是不会有结果的。尤其是向我们这样的学科,重在实践,实践中出真知。要努力实践,努力接受实践中所所遇到的问题,可能问题把脑子想破也有时候也不会,原因不是自己不会,是自己还没有学习那么深。可是自己学了那么深的时候就会解决这个问题了吗?不见得,问题来的时候,会让自己的心情有所沮丧,可是回头来还是要面对,作业还是要完成,任务还是要完成,要保持一颗平和的心去理解。

在学习c#的过程中,感觉最难受的就是没有一个好的同伴可以一同学习,没有一个好的老师可以指点迷津,老师都太忙,老师也太远。哎,如果可以有一个有经验的人带一带,我想我一定可以突飞猛进的。