写了个服务
为什么电脑关机关不了机了啊
必须停掉我写的才可以关的该怎么解决呢
为什么电脑关机关不了机了啊
必须停掉我写的才可以关的该怎么解决呢
解决方案 »
- 就是如果我用Grid显示数据,如何将分数低于60分的那条记录的颜色变成红色的呢?
- 菜鸟求助关于DBgrid的问题 (顺便B4一下那个说delphi不如.NET的猪)
- 关于布尔型字段在dbgrid上显示的问题
- access数据库删除问题
- 烂尾程序搞得我郁闷至极。。。。。。
- accessapplication 数据库引擎找不到表?
- 请问,变速齿轮的原理是什么呢?
- 没人告诉怎么做
- 用 DevExpress for delphi6 第三控件的朋友進來看一下,我是什麼錯!!!
- PChar to String?????help me!
- 600分悬赏高难度问题。需要顶级选手解答,低手免進。
- (求救)DELPHI 一按RUN运行时就跳出CPU窗口
ServiceThread.ProcessRequests(False);在ServiceExecute运行出错以及运行完成时
调用一下Self.ReportStatus,报告服务状态
主窗体没什么的
呵呵
{==========}
procedure ServiceController(CtrlCode: DWord); stdcall;
begin
TimeServer.Controller(CtrlCode);
end;function TTimeServer.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;procedure TTimeServer.ServiceContinue(Sender: TService;
var Continued: Boolean);
begin
while not Terminated do
begin
Sleep(10);
ServiceThread.ProcessRequests(False);
end;
end;
procedure TTimeServer.ServiceExecute(Sender: TService);
begin
while not Terminated do
begin
Sleep(10);
ServiceThread.ProcessRequests(False);
end;
end;
procedure TTimeServer.ServicePause(Sender: TService; var Paused: Boolean);
begin
Paused := True;
end;procedure TTimeServer.ServiceShutdown(Sender: TService);
begin
gbCanClose := true;
FrmMain.Free;
Status := csStopped;
ReportStatus();
end;
procedure TTimeServer.ServiceStart(Sender: TService; var Started: Boolean);
begin
Started := True;
Svcmgr.Application.CreateForm(TFrmMain, FrmMain);
gbCanClose := False;
FrmMain.Hide;
end;
procedure TTimeServer.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
Stopped := True;
gbCanClose := True;
FrmMain.Free;
end;
begin
Started := True;
Svcmgr.Application.CreateForm(TFrmMain, FrmMain);
gbCanClose := False;
FrmMain.Hide;
end;
procedure TTimeServer.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
Stopped := True;
gbCanClose := True;
FrmMain.Free;
end;
gbCanClose 的问题吧
当你暂停一个服务时,是把服务线程挂起,
Continue是从上次暂停处接着执行,
在Continue里启动一个死循环反而会影响到ServiceExecute的执行
procedure TTimeServer.ServiceContinue(Sender: TService;
var Continued: Boolean);
begin
while not Terminated do
begin
Sleep(10);
ServiceThread.ProcessRequests(False);
end;
end;
==========按照你的说法改了
可是启动服务后
关机还是关不掉
真郁闷
那就只好把代码一段一段注释掉,
然后一段一段加上,Build... 重启....
直到找到问题所在.......别忘了在设计时把Interactive属性设成True
应该是你主窗体代码有问题
贴出来see see
:)