- 博客(0)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
C#四种方式实现对用户操作响应灵敏及可动态更新的窗体控件及其对比
随机抽奖应用为例
timer,backGroundWorker,多线程,委托四种方式的对比:
1.4种方式都可以实现要求 可谓条条大路通罗马
2.多线程和委托需要强行禁用CheckForIllegalCrossThreadCalls,有可能存在运行安全问题,但目前还没遇到
3.timer的源代码最少最简单 其次是多线程
4.委托本质上还是要用到多线程 区别在于委托是通过消息和事件的方式同步协调线程之间的配合 Observer设计模式
5.多线程和委托需要自己处理资源释放 否则程序非正常退出时会仍然驻留内存
6.backGroundWorker看来是微软针对此要求度身定做的成熟组件,封装了线程、同步协调及资源释放,又没有运行安全问题的担心
7.性能哪个最好?有空导几万条数据再测试啦
4个源代码中 backGroundWorker的源代码是最完整的 还对既公平又高效的随机抽奖算法进行了一些探讨 详见源代码注释
其他3个源代码只实现基本要求
/*
* 如需引用,请注明出处,谢谢!
* If you need to quote please specify source, thanks!
*
* http://blog.csdn.net/johnnyxiao
* johnnyxiao@163.com
* 2012-09-05
*/
2012-09-06
京东买了个Hp m1136激光打印机 centos6.5安装新版HPLIP驱动后报错
2015-04-07
jboss7+mysq5+eclipseLuna应用JPA报错
2015-02-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人