每次停止就弹出一个对话框,说什么“不能停止,服务没有返回错误”之类的。

解决方案 »

  1.   

    你在 OnStop 事件里面将 Stopped 设为真就行了。
      

  2.   

    可我已经这么做了啊?
    procedure TService1.ServiceStop(Sender: TService; var Stopped: Boolean);
    begin
      SparkyThread.Terminate;
      SparkyThread.WaitFor;
      SparkyThread.Free;
      Stopped := True;
    end;
      

  3.   

    SparkyThread有没有FreeOnTerminate为TRUE。有的话  SparkyThread.WaitFor;
      SparkyThread.Free;不能要,不然是退不出来的。
      

  4.   

    我这样做了,还是不行。SparkyThread里有FreeOnTerminate:=True;ServiceStop里有,另外两个不要
      SparkyThread.Terminate;
      Stopped := True;但还是停不了。
      

  5.   

    谢谢hch_45(んこん),问题没解决,等待中···