快速业务通道

windows下解决PHP调用的外部程序超时阻塞问题

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22

 DWORD  WINAPI  ThreadFunc(  LPVOID  lpParam  );
 char  gargv[255];
 bool  end_thread=true;
 PROCESS_INFORMATION  pi;
 int  main(int  argc,  char  *argv[])
 {
       if(argc<2)
       {
       printf("Too  few  parameters");
       return  1;
       }

   strcpy(gargv,argv[2]);
   char  blank[]="  ";
   for(int  i=3;i<argc;i++)
   {
    strcat(gargv,blank);
    strcat(gargv,argv[i]);
    }
    //printf("%s",gargv);

     DWORD  dwThreadId,  dwThrdParam  =  1;
     HANDLE  hThread;
     char  szMsg[80];
     hThread  =  CreateThread(
         NULL,                         //  default  security  attributes
         0,                            //  use  default  stack  size
         ThreadFunc,                   //  thread  function
         &dwThrdParam,                 //  argument  to  thread  function
         0,                            //  use  default  creation  flags
         &dwThreadId);                 //  returns  the  thread  identifier

    //  Check  the  return  value  for  success.

    if  (hThread  ==  NULL)
    {
       wsprintf(  szMsg,  "CreateThread  failed."  );
       MessageBox(  NULL,  szMsg,  "main",  MB_OK  );
    }
    else
    {
      Sleep(500);
      if(end_thread)
      {
           Sleep(atoi(argv[1]));
           if(pi.hProcess)
                {
                    TerminateThread(pi.hThread  ,0);
                    TerminateProcess(pi.hProcess  ,  0);
                }
      }
      CloseHandle(  hThread  );
    }
   return  0;
 }
 DWORD  WINAPI  ThreadFunc(  LPVOID  lpParam  )
 {
     STARTUPINFO  si;
     ZeroMemory(  &si,  sizeof(si)  );
     si.cb  =  sizeof(si);
     ZeroMemory(  &pi,  sizeof(pi)  );

     //  Start  the  child  process.
     if(  !CreateProcess(  NULL,  //  No  module  name  (use  command  line).
         gargv,  //  Command  line.
         NULL,              //  Process  handle  not  inheritable.
         NULL,              //  Thread  handle  not  inheritable.
         TRUE,             //  Set  handle  inheritance  to  FALSE.  購囚頁宸倖歌方?葎TRUE夸序殻聞喘幻陣崙岬完笥。
         0,                 //  No  creation  flags.
         NULL,              //  Use  parent''s  environment  block.
         

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号