2017年3月17日

多线程与UI操作(二)

摘要: 为了让程序尽快响应用户操作,在开发Windows应用程序时经常会使用到线程。对于耗时的操作如果不使用线程将会是UI界面长时间处于停滞状态,这种情况是用户非常不愿意看到的,在这种情况下我们希望使用线程来解决这个问题。下面是一个使用多线程操作界面UI的代码: 我们的本意是点击“启动”按钮来启动模拟一个操 阅读全文

posted @ 2017-03-17 16:28 可爱的春哥 阅读(197) 评论(0) 推荐(0) 编辑

多线程与UI操作(一)

摘要: C#中禁止跨线程直接访问控件,InvokeRequired是为了解决这个问题而产生的,当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它。 此时它将会在内部调用new MethodInvoker(LoadGlobalImage)来完成下面的步骤,这个做法保证了控 阅读全文

posted @ 2017-03-17 15:32 可爱的春哥 阅读(475) 评论(0) 推荐(0) 编辑

线程池ThreadPool

摘要: 在面向对象编程中,经常会面对创建对象和销毁对象的情况,如果不正确处理的话,在短时间内创建大量对象然后执行简单处理之后又要销毁这些刚刚建立的对象,这是一个非常消耗性能的低效行为,所以很多面向对象语言中在内部使用对象池来处理这种情况,以提高性能,比如在ADO.NET内部就允许使用数据库连接池来提高性能, 阅读全文

posted @ 2017-03-17 14:56 可爱的春哥 阅读(256) 评论(0) 推荐(0) 编辑

线程的同步

摘要: 讲述线程之间存在竞争时如何确保同步并且不发生死锁。 线程不同步引出的问题下面做一个假设,假设有100张票,由两个线程来实现一个售票程序,每次线程运行时首先检查是否还有票未售出,如果有就按照票号从小到大的顺序售出票号最小的票,程序的代码如下: 这段程序的执行效果并不每次都一样,票号为001的号被售出了 阅读全文

posted @ 2017-03-17 14:45 可爱的春哥 阅读(175) 评论(0) 推荐(0) 编辑

C#中的索引器的简单理解和用法

摘要: 索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写。 1、索引器的定义 C#中的类成员可以是任意类型,包括数组和集合。当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作。 定义索引器的方式与定义属性有些类似,其一般形式如下: 修饰符 阅读全文

posted @ 2017-03-17 14:26 可爱的春哥 阅读(581) 评论(0) 推荐(0) 编辑

导航