想写一个后台日志处理线程 我的想法是这样的,自己写一个日志类,前台通过调用接口发送日志到日志消息队列中,后台启动一个线程,将读到的数据保存在文件中,谁有类似的代码可以参考的啊? 或者哪位有DELPHI实现的PV操作的源码让我参考一下最好,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.创建日志队列CreateIoCompletionPort2.业务线程PostQueuedCompletionStatus投递日志任务3.日志线程GetQueuedCompletionStatus取得日志任务写文件 TBizThread = class(TThread)public procedure Execute; override;end;TLogThread = class(TThread)public procedure Execute; override;end;TCustomLog = class(TComponent)private FFile: string; FLogThread: TLogThread; FBizThread: TBizThread;public constructor Create; override; destructor; override; procedure Lock; procedure UnLock;protected property File: string read FFile write FFile; end;TLog = class(TCustomLog)published property File;end;给你一个框架结构,自己补充吧! 这个在Delphi自带的Source当中就有。source\Win32\internet\ISAPIThreadPool.pas,它实现的是一个线程池,其实工作原理是一样的。 也可以参考一下下面的贴子:http://topic.csdn.net/u/20080527/12/ab4518d9-979f-468d-bdb5-8638b504de7a.html 这两天终于把需要的东西写出来了,大致实现如下:需求描述:自己写一个日志类,前台多个线程通过调用接口发送日志到日志消息队列中,后台启动一个线程,将读到的数据保存在文件中。实现步骤1、参照cnpack的源码写了一个线程安全的队列作为日志缓冲区;2、将上述队列封装在一个日志类中,日志类提供两个方法:1、发送数据到日志队列种;2、读取日志队列。由于这是一个典型的生产者消费者问题,即线程同步问题,我是用了PV操作,启用了两个信号量。3、在日志类种创建了一个线程,将读取日志队列的方法放在线程中运行,同时将占用时间较长的写文件操作放在队列中。4、结束。 TServerSocket,TClientSocket菜鸟问题 求助:光标在一个 Edit1 里,当我单击 enter 键,则 showmessage('ok'),这段程序要怎么写啊? 再次请教类型强制转换的问题! 请问一下想学ASP那本书比较好呀!! 对于外加的组件,应将组件的文件放到那个目录就可以用,而不用将组件的文件拷贝到所要编的程序目录中 哪里有delphi2006下载哦 托盘程序问题 高分问一个问题,支持者也可以得分 自荐! Delphi代码转换成C#怎么写 逻辑AND运算的一个疑惑 今天心情相当不错,到处气人!倒点分,鼓励一下自己
2.业务线程PostQueuedCompletionStatus投递日志任务
3.日志线程GetQueuedCompletionStatus取得日志任务写文件
public
procedure Execute; override;
end;TLogThread = class(TThread)
public
procedure Execute; override;
end;TCustomLog = class(TComponent)
private
FFile: string;
FLogThread: TLogThread;
FBizThread: TBizThread;
public
constructor Create; override;
destructor; override;
procedure Lock;
procedure UnLock;
protected
property File: string read FFile write FFile;
end;TLog = class(TCustomLog)
published
property File;
end;
给你一个框架结构,自己补充吧!
http://topic.csdn.net/u/20080527/12/ab4518d9-979f-468d-bdb5-8638b504de7a.html
1、参照cnpack的源码写了一个线程安全的队列作为日志缓冲区;
2、将上述队列封装在一个日志类中,日志类提供两个方法:1、发送数据到日志队列种;2、读取日志队列。由于这是一个典型的生产者消费者问题,即线程同步问题,我是用了PV操作,启用了两个信号量。
3、在日志类种创建了一个线程,将读取日志队列的方法放在线程中运行,同时将占用时间较长的写文件操作放在队列中。
4、结束。