在界面线程中想做这样的函数接口:函数先执行发送数据操作,然后进行等待(等待时间可由接口参数指定),等待过程中,工作线程从硬件I/O接收数据并传给界面线程的类内变量,等待时间到达后,函数接口根据传过来的变量进行判断,给出接口函数的返回值。

解决方案 »

  1.   

    Sleep应该可以。
    注意数据的同步
      

  2.   

    可以呀,是线程同步的问题,可以通过事件来做到,在你的界面线程中去等一个事件,然后在你的工作者线程做完处理后设置事件。你的界面线程是主线程吗?如果是的话,应该要加上消息循环的。如peekmessage, dispatchmessage, postmessage等。
      

  3.   

    谢谢大家的解答~
    To  ouyh12345(五岭散人) 兄:用Sleep语句后,出现的现象是在Sleep过程中界面线程(主线程)不再响应界面上的其他操作,无法忍受~To:lyl_rabbit(阿牛) 兄:有必要设等待时间限,这是用户的要求。因为在这个时间限内,硬件可能接收到需要的数据,也可能因为种种原因,不做响应,这就需要根据实际情形进行判断,并给出函数接口的返回值。tszzp(神奇) 兄:诚如您所言,确是线程同步问题。界面线程是主线程,我曾经利用手动设置的Event对象,但在WaitForSingleObject时同样出现了与Sleep()时一样的问题。难道是因为您提到的没有加消息循环所致?试试~