English 中文(简体)
B. 等待活动的区块
原标题:
  • 时间:2009-05-28 17:34:19
  •  标签:

我有一个与服务器连接的对外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

问题回答

由于这项活动的信息泵站在你Wait One电话的同一处。 read子正在等待,因此没有在电文上抽取。

Update

我要补充的是,使用<代码>(<>DoEvents()通常不是一种可取的解决办法。 处理假想的方法往往较好,例如,在你目前熟知的电传泵之外,有不同的透镜发射活动,这样你目前的透镜就不必向事件手开枪。





相关问题
热门标签