源动力

程序在于积累和思考
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

02 2012 档案

摘要:水晶报表查看器CrystalReportViewer的ReportSource属性是object,目前对其赋值一般采用两种方式。第一种是采用返回ReportClass对象实例的方式,第二种是采用ReportDocument返回报表文件的方式。他们各有优劣。采用ReportClass oRpt = new ReportClass();的方式最终的发布方式可以不用报表文件(即后缀为*.rpt)的方式,这种方式的特定是加载很快,但是如果要修改报表文件的话就要打开工程修改编译后才能起作用。而第二种方式ReportDocument oRpt = new ReportDocument();则是根据路... 阅读全文

posted @ 2012-02-23 16:52 老K的幸福生活 阅读(1419) 评论(0) 推荐(0)

摘要:.Net中的线程,可以分为后台线程和前台线程。后台线程与前台线程并没有本质的区别,它们之间唯一的区别就是:应用程序必须运行完所有的前台线程才可以退出;而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线程在应用程序退出时都会自动结束。其实,说白了就是当前台线程都结束了的时候,整个程序也就结束了,即使还有后台线程正在运行,此时,所有剩余的后台线程都会被停止且不会完成.但是,只要还有一个前台线程没有结束,那么它将阻止程序结束.这就是为什么有些设计不够完美的WinForm程序,在某种特定的情况下,即使所有的窗口都关闭了,但是在任务管理器的管理列表里仍然可以找到该程序的进程, 阅读全文

posted @ 2012-02-23 08:39 老K的幸福生活 阅读(1457) 评论(0) 推荐(2)

摘要:using System;using System.Collections.Generic;using System.Text;using System.Net;using System.IO;using System.Threading;namespace TestAsyncCallBack1{ // RequestState 类用于通过异步调用传递数据 public class RequestState { const int BUFFER_SIZE = 1024; public StringBuilder RequestData; public byte[] BufferRead; pu 阅读全文

posted @ 2012-02-17 16:22 老K的幸福生活 阅读(437) 评论(0) 推荐(0)

摘要:Facade模式,即外观模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。举一个例子:现在有一辆汽车,我们(客户程序)要启动它,那我们就要发动引擎(子系统1),使四个车轮(子系统2)转动。但是实际中我们并不需要用手推动车轮使其转动,我们踩下油门,此时汽车再根据一些其他的操作使车轮转动。油门就好比系统给我们留下的接口,不论汽车是以何种方式转动车轮,车轮变化成什么牌子的,我们要开走汽车所要做的还是踩下油门。GoF《设计模式》中说道:为子系统中的一组接口提供一个一致的界面,Facade模式 阅读全文

posted @ 2012-02-16 11:05 老K的幸福生活 阅读(331) 评论(0) 推荐(0)

摘要:在.Net多线程编程中,AutoResetEvent和ManualResetEvent这两个类经常用到,用于线程之间的通信, 他们的用法很类似,但也有区别。Set方法将信号置为发送状态,Reset方法将信号置为不发送状态;WaitOne方法在无信号状态下,可以使当前线程挂起;注意这里说的是当前线程。可以通过构造函数的参数值来决定其初始状态,true表示畅通无阻的状态(signaled),线程不能阻塞,即使调用WaitOne也不能阻塞;false表示是可阻塞的状态(nonsignaled),可以调用WaitOne方法来阻塞,WaitOne方法被调用后,当前线程(即调用这个方法的线程)暂停运行(可 阅读全文

posted @ 2012-02-16 10:26 老K的幸福生活 阅读(502) 评论(0) 推荐(1)