Предотвратить закрытие WxWidget Boost Thread - PullRequest
0 голосов
/ 27 ноября 2011

Следующая функция создается в потоке поддержки.В консольном приложении это работает следующим образом.

void function()
{
    /* snip */
    try
    {
        /* Do stuff, in this case a P2P transfer is started using an external library
           as long as this thread is active, the P2P transfer will be too. */

        //Prevent thread from closing
        char a;
        std::cin >> a;
    }
    catch (std::exception& e)
    {
        /* snip */
    }
    return 0;
}

, что препятствует закрытию потока, пока пользователь не введет что-либо.В конечном счете, я хочу вот что:

void function()
{
    int x = 1;
    /* snip */
    try
    {
        /* Do stuff, in this case a P2P transfer is started using an external library
           as long as this thread is active, the P2P transfer will be too. */

        //Prevent thread from closing
        while(x = 1)
        {
            //Do nothing until the user stops the transfer (x becomes 0 when the user hits stop)
        }
    }
    catch (std::exception& e)
    {
        /* snip */
    }
    return 0;
}

Но это нехорошо .. Процессор взлетает до 100%.Я попытался поместить sleep(1); в цикл while, но это не имело никакого значения, и я не уверен, как это повлияет на передачу.

...