我在主线程中调用一个DLL中的函数(比如是Func),现在这个DLL对我来说是透明的,我不知道它里面实现了什么,
   我调用它时,比如
   void ThreadProc()
  {
    Func(); //调用DLL中的函数,这一步时我不知道这个函数何时能返回,
   .....   //执行别的动作
  }问题是我不知道DLL中的Func何时能返回,所以我的线程就一直会阻塞在这里,
现在我想对这个调用作超时处理,如果这个函数在5s之内没有返回就执行下面的动作。请问各位大侠,这个超时应该怎么设置,用什么函数(我用WaitForSingleObject只能针对于HANDLE)??
还有什么好的办法控制超时吗?有代码更好!!,
多谢!!顶也有分!!
一定结贴!!!!!!!!

解决方案 »

  1.   

    可以创建一个子线程,专门运行func函数,在主线程里面控制超时
      

  2.   

    如果不能返回值,让子线程执行完func函数就关闭线程,然后在主线程里面等待该线程关闭,设置等待时间
      

  3.   

    现在问题是我不知道这个函数何时才能返回值给我啊,
    如果我调用的DLL中的函数是个死循环,它怎么返回值给我啊
      

  4.   

    如果没有返回值不就是func函数还没有执行完吗
      

  5.   

    func给个出口条件?外部可控制?