01 2011 档案

摘要:定义:装饰器设计模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。不改变对象的情况下,动态增加其功能。• 需要扩展一个类的功能,或给一个类添加附加的成员。• 需要动态地给一个对象增加功能,这些功能可以再次动态的撤销• 需要增加由一些基本功能的排列组合二产生的非常大量的功能,从而使继承关系实现变得不现实。装饰器模式中的各个角色:• 抽象构件角色:给出抽象接口。规范被附加功能类型。• 具体构件角色:被附加功能的具体实现。• 装饰角色:持有被附加对象的实例,并实现抽象构件的接口规范(装饰角色实现抽象构件的目的就是为了具体装饰角色之间也可以相互修饰)。• 具体装饰角色:扩展具体构件的功 阅读全文
posted @ 2011-01-30 10:46 b0b0 阅读(424) 评论(0) 推荐(1)
摘要:性能监视器,是Windows NT提供的一种系统功能。Windows NT一直以来总是集成了性能监视工具,它提供有关操作系统当前运行状况的信息,针对各种对象提供了数百个性能计数器。 性能监视器的使用 比如需要监控应用程序NetThreading中每秒中的线程的个数。 1) 清除显示 2) 冻结显示 已经得到了需要的数据,如果不冻结绘图,性能监视器会把不需要的数据绘制出来。 冻结显示也就是停止性能监视器绘图。 3) 添加计数器 在图表中单击鼠标右键,单击添加计数器 4) 选择需要监视的性能对象。比如监视某一进程中的线程数,首先选择性能对象进程Process 5) 然后选择计数器,线程个 阅读全文
posted @ 2011-01-25 11:44 b0b0 阅读(405) 评论(0) 推荐(1)
摘要:线程池实现的原理: 多线程单元模式,借助抢先式多任务方式,利用高性能的队列和调度来实现。 线程池管理是指多线程应用程序的初始化过程中创建线程的集合,当需要线程是,为新的任务重用线程,而不是创建新的线程。线程的数量一般是固定的。线程池中的线程都分配了一个任务,当任务完成时,线程就返回线程池中等待下一次分配。 线程池的优点: • 不需要重新创建线程 • CLR不必为每个生存周期短暂的任务创建一个全新的线程,并在结束时回收其资源 • 线程池根据进程,优化时间片 • 启动多个线程,不必为每个线程设置属性 • 允许将线程的状态信息作为一个对象传递给当前执行任务的过程参数 WaitCall 阅读全文
posted @ 2011-01-25 11:13 b0b0 阅读(2035) 评论(1) 推荐(2)
摘要:获取目录 获取当前目录可以使用AppDomain.CurrentDomain.BaseDirectory。 获取当前目录的上级目录Path.GetFullPath("..\\") 代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace PathTest { class Program { static void Main(string[] args) { //使用AppDomain获取当前应 阅读全文
posted @ 2011-01-20 17:36 b0b0 阅读(968) 评论(0) 推荐(1)
摘要:类的静态字段在类的实例中是共享的。多个线程修改实例字段的值在对其它线程来说是可见的,这也是clr默认的行为。对静态字段添加ThreadStaticAttribute标记可以改变这种默认的行为。ThreadStaticAttribute指示静态字段的值对于每个线程都是唯一的。用 ThreadStaticAttribute 标记的 static 字段不在线程之间共享。每个执行线程都有单独的字段实例,并且独立地设置及获取该字段的值。如果在不同的线程中访问该字段,则该字段将包含不同的值。示例代码代码Code highlighting produced by Actipro CodeHighlighte 阅读全文
posted @ 2011-01-14 14:51 b0b0 阅读(5518) 评论(3) 推荐(1)
摘要:定义 ManualResetEvent:通知正在等待的线程已发生事件。 AutoResetEvent:通知正在等待的线程已发生事件。 代码 ManualResetEvent测试 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace NetThreading.UserThread { /// summary /// ManualAutoResetEvent的用法 /// /sum 阅读全文
posted @ 2011-01-13 12:50 b0b0 阅读(679) 评论(0) 推荐(1)
摘要:Monitor说明 Enter, TryEnter 获取对象锁。此操作同样会标记临界区的开头。其他任何线程都不能进入临界区,除非它使用其他锁定对象执行临界区中的指令。 Wait 释放对象上的锁以便允许其他线程锁定和访问该对象。在其他线程访问对象时,调用线程将等待。脉冲信号用于通知等待线程有关对象状态的更改。 Pulse (信号), PulseAll 向一个或多个等待线程发送信号。该信号通知等待线程锁定对象的状态已更改,并且锁的所有者准备释放该锁。等待线程被放置在对象的就绪队列中以便它可以最后接收对象锁。一旦线程拥有了锁,它就可以检查对象的新状态以查看是否达到所需状态。 Exit 阅读全文
posted @ 2011-01-13 12:48 b0b0 阅读(1601) 评论(1) 推荐(1)
摘要:1. 趋势预测的定义趋势预测法又称趋势分析法。是指自变量为时间,因变量为时间的函数的模式。趋势预测法的主要优点是考虑时间序列发展趋势,使预测结果能更好地符合实际。2. 如何对给定序列计算趋势序号值15622345356746525249已知以上序列,分别计算趋势线性趋势,指数趋势,对数趋势以及乘幂趋势。2.1线性趋势a) 趋势图b) 计算方法:/// summary/// 计算序列的线性趋势相关系数/// /summary/// param name="serials"/parampublic void CalculateLinEstTrendline(Dictionaryd 阅读全文
posted @ 2011-01-11 14:54 b0b0 阅读(569) 评论(0) 推荐(1)
摘要:1. 常用结构1) Point:点坐标2) Size:大小3) Rectangle:包括位置与大小Rectangle.Location:位置坐标Rectangle.Size:大小4) Pen:画笔红色笔:Pens.Red,黑色笔:Pens.Black其它的一次类推。5) Brush:画刷红色画刷:Brushes.Red 黑色画刷:Brushes.Black其它以此类推。2. 坐标变换对象屏幕坐标转化为客户区坐标客户区坐标转化为屏幕坐标PointPointToClinet(Point pt)PointToScreen(Point pt)RectangleRectangleToClientRect 阅读全文
posted @ 2011-01-07 15:52 b0b0 阅读(1639) 评论(0) 推荐(3)
摘要:1. 二叉树控件(1) 二叉树节点控件一个连接节点只能引出一条连接线(2) 二叉树节点控件可以自由拖动并且自动绘制连接线废话不说了实现效果如下:2. 实现效果如下:图-1添加节点图-2 插入节点图-3 连接节点图-4 拖动节点调整节点位置3. 类关系图4. 实现思路连接矩形:就是指连接节点上的小方块。 连接矩形名称枚举对应值上TopRectangle下左BottomLeftRectangle下右BottomRightRectangleBNode节点类中存储与它连接的各节点字符串,格式如下:当前节点名称-连接矩形类型名称,连接节点-连接矩形类型名称。当鼠标点击连接矩形是开始记录当前连接矩形, 阅读全文
posted @ 2011-01-06 17:32 b0b0 阅读(4912) 评论(17) 推荐(1)