请问如何让C++代码等待C#中的消息响应函数返回成功值后,再继续执行之后的语句啊?
菜鸟求大神们指教啊!很急!底子差,丝毫没有头绪!
帮客户公司写他们的SDK,是用C++写的,需要调用我们自己C#代码中的connect()函数,等连接成功后,再调用C++代码中的别的函数,就以PlayVideo()为例吧,现在的问题是:
我们自己的C#connect()大致代码如下:
public void Connect(string ipAddr, string username, string password, int port, string siteType)
{
中间设置一些IP,密码等参数,此处忽略
函数的最后部分,是将一些消息响应函数加入到callback中,
m_Dispatcher = new DispatcherAsyncExecutor(Dispatcher.CurrentDispatcher);
m_Site.Initialize(m_Dispatcher, siteMode, connScheme, endPoint, appID, appSignature)
m_Site.Host.StateChanged += HandleHostStateChanged;
m_Site.Topology.SynchStateChange += HandleTopologySynchStateChange;
}
用到了异步调用还是什么东西我不是很懂,正常执行连接的话,大致顺序是connect()函数执行完毕以后,还需要等到callback循环调用这些消息响应函数执行仪器的连接和当前状态判定,直到连接完成到应有的步骤后才能完成连接。
在C++程序中,如果我调用了connect()这个功能,后面接着调PlayVideo()的话,从debug tool中通过日志监视到,会在connect()功能执行完毕之后就尝试调用PlayVideo(),而不是等callback调用完一切应用的连接后。
请问如何强制让C++程序等到连接真正完成后再调用之后的功能啊?是在C++中加一些什么东西还是在C#中加?希望大神们不吝赐教!!!