上一页 1 2 3 4 5 6 7 8 9 ··· 16 下一页
摘要: IOCP(I/O Completion Port,I/O完成端口)是性能最好的一种I/O模型。它是应用程序使用线程池处理异步I/O请求的一种机制。在处理多个并发的异步I/O请求时,以往的模型都是在接收请求是创建一个线程来应答请求。这样就有很多的线程并行地运行在系统中。而这些线程都是可运行的,Windows内核花费大量的时间在进行线程的上下文切换,并没有多少时间花在线程运行上。再加上创建新线程的开销比较大,所以造成了效率的低下。 调用的步骤如下: 抽象出一个完成端口大概的处理流程: 1:创建一个完成端口。 2:创建一个线程A。 3:A线程循环调用GetQueuedCompletionStatus 阅读全文
posted @ 2012-09-20 08:49 马儿快跑 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 基于Delphi的Socket I/O模型全接触老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的信箱里。 这和Socket模型非常类似。下面我就以老陈接收信件为例讲解Socket I/O模型。 一:select模型 老陈非常想看到女儿的信。以至于他每隔10分钟就下楼检查信箱,看是否有女儿的信,在这种情况下,“下楼检查信箱”然后回到楼上耽误了老陈太多的时间,以至于老陈无法做其他工作。 select模型和老陈的这种情况非常相似:周而复始地去检查......如果有数据......接收/发送....... 使用线程来selec... 阅读全文
posted @ 2012-09-20 08:48 马儿快跑 阅读(642) 评论(0) 推荐(0) 编辑
摘要: var i = {};跟var i = new Object();是一个意思,JavaScript 有3中方式定义对象,还有一种:function P (x) { this.x = x;}var i = new P();var i = {};是什么意思,这是通过Json方式定义一个函数对象,该函数对象体为空,但不能说对象为空,执行alert(i)绝对不是null,提问者可以试一下,当然也不是等效于var i = new Object();语句,这个语句是在用Object原型创建实例,而提问者的var i = {};语句是在定义一个函数对象 阅读全文
posted @ 2012-09-19 16:31 马儿快跑 阅读(6892) 评论(1) 推荐(0) 编辑
摘要: UltraEdit 另存为UTF-8 换行符设置成“默认”格式为:“UTF-8 - 无BOM”2.字节顺序标记(ByteOrderMark) BOM目录不同编码的字节顺序标记的表示 BOM —— Byte Order Mark,中文名译作“字节顺序标记”。在这里找到一段关于 BOM 的说明: 在UCS 编码中有一个叫做 "Zero Width No-Break Space" ,中文译名作“零宽无间断间隔”的字符,它的编码是 FEFF。而 FFFE 在 UCS 中是不存在的字符,所以不应该出现在实际传输中。UCS 规范建议我们在传输字节流前,先传输字符 "Zero 阅读全文
posted @ 2012-09-13 10:39 马儿快跑 阅读(234) 评论(0) 推荐(0) 编辑
摘要: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;type //定义一个事件格式,要传参数的格式 后面必须要加上of object TeacherArgnyEvent = procedure(ErrorCount: Integer) of object;typeTTeacher = class(TObject)private FStudentErrorCount: Integer; FOnTeacherArngy: 阅读全文
posted @ 2012-09-06 14:39 马儿快跑 阅读(1498) 评论(0) 推荐(0) 编辑
摘要: typeTCurFlagItem = class(TObject) //定义一个ITEM对象,用来存储ITEM; Flag:Integer; Clocked:Boolean; Note:string; end; TCurFlag=class(TStringList) //定义一个LIST型对象,用来处理上面的ITEM; private { Private declarations } FItemIndex: Integer; FClocked: Boolean; FFlag: Integer; FNote: string; FOnItemIndexChange: TNotifyEvent; p 阅读全文
posted @ 2012-09-06 14:35 马儿快跑 阅读(2581) 评论(0) 推荐(0) 编辑
摘要: 为什么我们点击按钮,就会执行按钮的onclick事件?这个事件是怎么和我们自己的代码关联起来的。相信很多人都有这个疑问。那么我们就通过一个自定义事件来了解这里面得运行原理。以乘法运算来显示,如果乘数大于100,就提示用户,太大了。这个事件用自定义事件定义。 大家先看一下最终效果,我添加了三个文本框,一个按钮,当第一或者第二个文本框的数>100时,点求积按钮,提示Too Big 对话框。完成自定义事件需要5步来做:1.定义TNotifyEvent类型私有变量 Code highlighting produced by Actipro CodeHighlighter (freeware)ht 阅读全文
posted @ 2012-09-06 14:22 马儿快跑 阅读(9929) 评论(0) 推荐(0) 编辑
摘要: Delphi ListView基本用法大全//增加项或列(字段)ListView1.Clear;ListView1.Columns.Clear;ListView1.Columns.Add;ListView1.Columns.Add;ListView1.Columns.Add;ListView1.Columns.Items[0].Caption:='id';ListView1.Columns.Items[1].Caption:='type';ListView1.Columns.Items[2].Caption:='title';ListView1. 阅读全文
posted @ 2012-09-05 11:47 马儿快跑 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 需要截获LVM_SETCOLUMN消息。例子: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, CommCtrl, StdCtrls; type TMyListView = class(TListView) protected procedure LVMSETCOLUMN(var Message: TMessage); message ... 阅读全文
posted @ 2012-09-05 11:09 马儿快跑 阅读(570) 评论(0) 推荐(0) 编辑
摘要: 网络摘抄//刚封装的ini文件类。保存为unicode的。解决delphi xe的TiniFile保存后不为unicode的问题//今天发现delphi xe的TiniFile类保存后的文件不是以unicode存储的,//所以就自己写了个和他功能类似的类,可能比原版的TIniFile少了一些方法。//其他的方法属性等我的工程都没用到,所以就没写其他的函数。函数只有如下,正常情况下够用了//考虑到时间问题就就用了tstringlist类了。所以效率不怎么样。很一般。//很垃圾的代码,不嫌弃的人拿去用吧!//function ReadString(const cSection, cIdent, c 阅读全文
posted @ 2012-08-30 13:27 马儿快跑 阅读(2195) 评论(1) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 16 下一页