如何将 IDispatch::Invoke 放入 MFC C++ 线程?
Posted
技术标签:
【中文标题】如何将 IDispatch::Invoke 放入 MFC C++ 线程?【英文标题】:How to put IDispatch::Invoke to a MFC C++ Thread? 【发布时间】:2011-03-10 02:52:39 【问题描述】:如果超时,如何将IDispatch::Invoke
放入线程并调用TerminateThread
?
我想这样做的原因是因为我发现有时 Invoke 调用会进入无限循环并且永远不会返回任何内容,因此调用将永远坐在那里。因此,我正在考虑将 Invoke 放入线程并在线程超时时终止线程。
非常感谢任何建议或参考。 和平
【问题讨论】:
【参考方案1】:您好,我强烈不建议您为任何其他事情调用 TerminateThread,但 TerminateThread + IDispatch::Invoke 在好的情况下会导致程序异常终止,而在坏的情况下会导致更奇怪的程序行为和随机崩溃。我认为您需要选择另一种方式...
【讨论】:
您好 Sanja,感谢您的回复和建议。是的,我在谷歌上读过不要一起调用 TerminateThread 和 Invoke。但是,除了创建线程之外,我想不出或找到其他方法来确定 IDispatch::Invoke 的超时,并且对该函数的调用将永远坐在那里。以上是关于如何将 IDispatch::Invoke 放入 MFC C++ 线程?的主要内容,如果未能解决你的问题,请参考以下文章
LPDISPATCH是啥数据类型,他和IDispatch有啥关系