摘要: 对于长期运行的系统,产生的日志是大量的,即使每2秒一条,一天也有4W多条。假如我们只需要在想观察的时候动态地看到当前记录或计数,那么可以将日志的信息写到一个共享内存区,然后写一个LogReader,去访问这个共享内存区即可。要使用共享内存,应该有如下步骤:1.开辟一块共享内存 shmget()2.允许本进程使用共某块共享内存 shmat()3.写入/读出需要删除这块内存的时候,步骤为4.禁止本进程使用这块共享内存 shmdt()5.删除这块共享内存 shmctl()或者命令行下ipcrm过程会用到以下的这些函数: int shmget( key_t shmkey , int shmsiz , 阅读全文
posted @ 2011-03-17 11:38 Hector 阅读(3199) 评论(0) 推荐(0) 编辑
摘要: 原文链接: Creating a Skinned User Interface in WPF译者:HectorInsanE 引言本文主要介绍了在程序运行时实现皮肤系统的基础知识。我们会探索WPF对UI换肤的支持,同时使用例子实现这些特性。背景知识“皮肤” 这个术语,在应用到用户界面时,表示的是界面上所有元素都遵循的一种视觉上的风格。 一个“可换肤”的界面指,界面可以在编译过程中,或运行过程中改变其风格。WPF为这种功能提供了很好的支持。(为了不那么拗口,下文中的“主题”将会代替“皮肤”一词,但表示的是同一个意思)UI换肤具有重要的意义。它使最终用户根据自己的审美自定义UI。另一个情况是当公司为 阅读全文
posted @ 2011-03-10 14:08 Hector 阅读(1983) 评论(0) 推荐(1) 编辑
摘要: 在视图使用多线程进行WPF编程的时候,新手如我一定会试过引发一个异常,大致的意思是“某个控件在线程a上创建,你不能在线程b上改动它”,例如使用ProgressBar去显示运算进度,当新建的运算线程完成,并在此线程上直接改动ProgressBar时,就会出现这种异常。如何解决? 参考地址:http://msdn.microsoft.com/zh-cn/magazine/cc163328.aspx 所有 WPF 应用程序启动时都会加载两个重要的线程:一个用于呈现UI,另一个用于管理UI。呈现线程是一个在后台运行的隐藏线程,因此您通常面对的唯一线程就是管理UI的线程。WPF 要求将其大多数对象与该U 阅读全文
posted @ 2011-03-02 15:31 Hector 阅读(544) 评论(0) 推荐(0) 编辑
摘要: 当发现使用WORD在win7上打印的时候只能选择"双面打印(手动)"的时候,其实不是打印机的问题。WIN7默认关闭了双面打印,需要通过以下路径打开其功能。开始菜单-》设备与打印机-》找到自己对应的打印机-》右键“打印机属性”(注意,不是“属性”,是“打印机属性”)在设备设置Tab下将 双面打印器 设置选成“已安装”,即可。 阅读全文
posted @ 2011-02-23 14:51 Hector 阅读(1327) 评论(0) 推荐(0) 编辑
摘要: 老师说:今天听说: 两个包分别包含:ab ac但是序列号重叠一个xp 系统重组两个包得到 aaclinux 系统重组两个包得到 abc 你实验一下是否如此? 另外win7是什么结果------------------分割线------------------这破玩意搞了我整整一天……由于需要定义序号,所以不能用系统提供的send和recv函数发送两个关键的包了,只能自己构造。无头苍蝇般找相关的工具,找了好一会才下了libnet并安装,把sample里面的tcp1.c稍微改造了一下,添加了seq选项和ack选项,就可以使用自己指定的参数发包了。但是需要模拟乱序报文的重组,还需要真正地把这个链 阅读全文
posted @ 2011-01-13 14:08 Hector 阅读(1315) 评论(0) 推荐(0) 编辑
摘要: 一些读书笔记。记录一下我不知道的WPF。 1、当没有显式的指定窗口的大小时,窗口的高和宽都是NaN,因此不可以使用Width和Height,而应该使用ActualWidth和ActualHeight ,来获取当前窗口的实际尺寸。不过以上两个属性是只读的,而且只有在窗口被绘制以后才生效。 2、WPF的度量时使用设备无关单位。为任何控件设置的长度值,都不是像素值(它们可以被设置为double),而是一个设备无关值。这里的单位是 1/96英寸,这与windows的默认显式分辨率一致(每英寸96像素),以致于看上去我们是设定了一个像素值。这样做的好处是,即使显示设备的精度会 越来越高,但WPF绘制 阅读全文
posted @ 2010-12-14 16:23 Hector 阅读(783) 评论(0) 推荐(0) 编辑
摘要: Grid1、一般来说, 若Grid的格子(cell)没有根据element调整大小,那么element就会根据格子调整大小。[代码]将GridLength设置为Auto以后,cell根据element调整。 否则element就会根据cell调整大小。2 下面这个是适用于窗体的,这样窗体的大小就会根据内容自动调整[代码]但是当我们手动地通过拖动窗口的边框以后,窗口会认为用户在手动修改Height和Width,因此sizetocontent就不能再动态地适应了。3 使用GridSplitter的时候,最重要的属性值是HorizonalAlignment和VerticalAlignment。当将G 阅读全文
posted @ 2010-12-14 16:22 Hector 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 算法中需要使用搜索进行解决的内容很多,大致分为以下几类常用的搜索方式。 1、枚举。枚举运算量很大,需要预先确定枚举的定义域。2、广度优先搜索(BFS )——通常可以用于计算图的连通性、单源最短路径、计算最小操作次数等。3、深度优先搜索(DFS)——。经典题:火力中心布局。 BFS的占用的是队列的空间,DFS 占用的是栈的空间(因为递归)。BFS和DFS的空间复杂度恰好相反。对链状图,BFS最好(队列中最多只有1个元素),DFS最差(所有节点都在根节点的递归内)。对起点与其他所有点相邻的图,DFS最好(递归深度为1),BFS最差(队列中放满了所有与起点相邻的图)。 相对来说,BFS是比较简单的( 阅读全文
posted @ 2010-11-09 14:29 Hector 阅读(1077) 评论(0) 推荐(0) 编辑
摘要: Blend3 就有了SketchFlow, 但是一直没有搞清楚是干嘛用的。就像当初学SketchUp不知道Layout是干嘛用的。今天看了几段MS的BLEND 4 5天上手教程(http://www.microsoft.com/expression/resources/BlendTraining/)。记录一下感受:SketchFlow是一个用于展示概念和idea的工具。在产品设计的初期,设计师可以... 阅读全文
posted @ 2010-10-26 13:50 Hector 阅读(343) 评论(0) 推荐(0) 编辑