windows 服务程序里面开启线程导致,服务里面开启线程。启动服务,启动服务失败的有关问题!

windows 服务程序里面开启线程导致,服务里面开启线程。启动服务,启动服务失败的问题!!
启动服务后,提示某些服务在未由其他服务或程序使用时将自动停止。

我贴代码


void WINAPI ServiceMain()
{
    // Register the control request handler
    status.dwCurrentState = SERVICE_START_PENDING;
status.dwControlsAccepted = SERVICE_ACCEPT_STOP;


//ClientRun(PathName,"Test-PsConvertTool.exe",3,1);

//注册服务控制
    hServiceStatus = RegisterServiceCtrlHandler(szServiceName, ServiceStrl);
    if (hServiceStatus == NULL)
    {
        LogEvent(_T("Handler not installed"));
        return;
    }
    SetServiceStatus(hServiceStatus, &status);

    status.dwWin32ExitCode = S_OK;
    status.dwCheckPoint = 0;
    status.dwWaitHint = 0;
status.dwCurrentState = SERVICE_RUNNING;
SetServiceStatus(hServiceStatus, &status);

//模拟服务的运行,10后自动退出。应用时将主要任务放于此即可

//ClientRun(PathName,"Test-PsConvertTool.exe",3,1);
int i=0;
while(i<1)
{
 i++;
Sleep(700);
// CloseHandle(CreateThread(NULL,0,FileDeal,NULL,0,NULL)); 

}

    status.dwCurrentState = SERVICE_STOPPED;
    SetServiceStatus(hServiceStatus, &status);
    LogEvent(_T("Service stopped"));
}


mian()
{
............

 SERVICE_TABLE_ENTRY st[] =
    {

        { szServiceName, (LPSERVICE_MAIN_FUNCTION)ServiceMain },
        { NULL, NULL }
    };


                int Flag =0;
Flag=StartServiceCtrlDispatcher(st);
{
int a=GetLastError();
LogEvent(_T("Register Service Main Function Error!"));
}
}

 ServiceMain()是 服务的
FileDeal只是个简单的线程,这个线程什么都没有做。
注释 CloseHandle(CreateThread(NULL,0,FileDeal,NULL,0,NULL)); 
这个服务就能正常启动了。
本人win7,32位系统。
与安全属性有关?还是其他的什么原因?
有经验的人指点一下。
------解决思路----------------------
你要保持的服务的呃ServiceMain一直运行,一般都是封装一个Run进入消息循环。这样服务才会一直运行

------解决思路----------------------
while循环都退出了.,子线程怎么执行