我有一个与服务器连接的对外COM目标,然后当服务器就绪时便发射一次活动。 因此,联线电话是同步的。
我的法典像......那样看一看。
ManualResetEvent waitConnection;
//This is the event that is triggered when server is ready
public void onConnection_event(bool success)
{
if(success)
waitConnection.Set();
}
private string getItem(string itemName)
{
//MYDBCom is a win32 com if that makes any difference
MYDBCom myDBobject = new MYDBCom();
waitConnection = new ManualResetEvent(false);
myDBobject.connect(); //asynchron call.
//wait until server triggers the onConnection_event
waitConnection.WaitOne();
//server is now ready. Get the data from the server.
return myDBobject.getItem(itemName);
}
问题是,这一事件没有发生,似乎在瓦伊特·伊恩等待时被阻断。 如果我不使用等待
while(!connected)
{
Sleep(100);
DoEvents();
}
活动开始。
任何想法为什么瓦伊特·阿尼古斯? 是否有其他建议,如何等到事件发生之前?
/Fredrik