猿问

请问c++怎么让函数等待特定函数运行后再调用呢?


  • class Test
    {
    public:
    void mouse(); //鼠标点击获取坐标
    void getXY(Vector2 &p);//用户主动获取上次的坐标
    }
    调用的时候,
    Test test;
    test.mouse(); //然后鼠标操作
    test.getXY(p); //主动获取,如果没点击完成,卡在这里等待。

    如上。我试过了 关键段,互斥量,事件。。。都没成功。要么卡在getXY()上,不能鼠标操作。。要么直接getXY()已经运行完了,鼠标还没操作。。。。
    求大神。。。


侃侃尔雅
浏览 1404回答 3
3回答

万千封印

没看到具体实现代码,不太好判断什么问题想要等待的话写一个循环,直到满足条件,比如说鼠标点击,然后退出循环

MYYA

getXY()运行的时候,mouse()已经运行结束,即便鼠标点击也不会记录其坐标了。这种情况应该采用多线程吧,getXY()函数挂起,等待mouse()函数结束后再运行。

aluckdog

可以查一下回调函数的相关概念,将后续需要执行的函数与将要执行的函数关联,待函数执行完成再调用后续的函数执行
随时随地看视频慕课网APP
我要回答