0

RxCPP 上的新手仍在学习...

我有一个由某个线程不断修改的项目向量。我希望能够订阅此向量超时并在推送某些内容时调用 onNext。

void updateVec(std::vector<int> & v)
{
    v.push_back(1);
    v.push_back(2);
    ...
}

在我的主要我有这样的事情:

int main()
{
    std::vector<int> vec{};
    
    auto values = rxcpp::observable<>::iterate(vec);

    auto t1 = std::thread(updateVec, std::ref(vec));

    values.subscribe([](int v)
        { std::printf("OnNext-> value: %d \n", v); }, []() { std::cout << "OnCompleted" << std::endl; });

    t1.join();
    return 0;
}

当前输出只是:OnCompleted没有别的。我希望每当向量vec在线程中更新时t1, onNext 被调用,然后输出看起来像这样:

OnNext-> value: 1
OnNext-> value: 2
OnNext-> value: 3
...

这样做的正确方法是什么?

4

0 回答 0