用事件(EVENT)进行处理比较好。
我想你正确的问题应该是当Function1()执行到某一个点的时候才允许MessageHandler()函数开始往下执行吧。如果是这样的话,可以当Function1()执行到那个点的时候,激活事件,然后在MessageHandler()开始处等待这个事件,如果发现被激活变开始执行。设置和创建事件相关的函数为CreateEvent,SetEvent等等。
等待事件相关的函数为Waitforsingleobject
在MSDN中应该有详细的介绍。
呵呵。
我想你正确的问题应该是当Function1()执行到某一个点的时候才允许MessageHandler()函数开始往下执行吧。如果是这样的话,可以当Function1()执行到那个点的时候,激活事件,然后在MessageHandler()开始处等待这个事件,如果发现被激活变开始执行。设置和创建事件相关的函数为CreateEvent,SetEvent等等。
等待事件相关的函数为Waitforsingleobject
在MSDN中应该有详细的介绍。
呵呵。
The PostMessage 立即返回,不等待执行结束.
:P
我的意图是
Handler是负责资源回收, 而Function1是某的用New分配出来的对象的方法,
Function1的功能之一就是告诉Handler: 我所属的对象在我返回后就完成
使命了, 请回收资源...
这种方式看起来怪异, 但是在有些场合是必须的, 比如说用Socket通信的程序
可能就会用到.以前我用的是socket api + multithread, 只需做一个回收者线程就可以了
回收者线程接受回收消息, 然后用WaintForSingleObject确保待回收的线程
结束, 放心地释放资源即可目前我用的是CAsyncSocket + Virtual Function(Callback), 所以回收
机制要变一变了, 于是就产生了上面的问题.函数调用同步问题, 好象Window同步对象中对此有所涉及的只有Asynchronous Procedure Calls(APC) 但是好象也不适用我的这个场景.
delete this; 要释放只能delete this
只是在delete this 后不能在访问自己的成员变量和虚函数