WXHTTP и темы

У меня есть некоторые проблемы с использованием wxHTTP внутри потока. Я создал ниже класс, который является производным от wxThread, чтобы использовать wxHTTP.

class Thread : public wxThread {
private:
wxHTTP get;

public:
Thread()
{
}
~Thread()
{
}

virtual ExitCode Entry()
{

    get.SetHeader(wxT("Content-Type"), wxT("text/html; charset=utf-8"));
    get.Connect(wxT("www.mysite.com"));

    get.SetTimeout(1);

    wxInputStream *httpStream = get.GetInputStream(wxT("/script.php?name=aaa&text=blabla"));
    wxDELETE(httpStream);
    get.Close();


    return 0;
}
};

Я создаю этот поток и запускаю его (потоки создаются, запускаются, и с ними все в порядке). К сожалению, wxHTTP, кажется, не работает должным образом с потоками (даже мой брандмауэр не спрашивает меня о соединении). Есть ли способ создать соединение wxHTTP внутри потока?

2 ответа

Решение

Вот ответ (по запросу @bluefeet), wxHTTP наследует от wxSocketBase, а в wxSocketBase мы имеем эту цитату

При использовании wxSocket из нескольких потоков, даже неявно (например, используя wxFTP или wxHTTP в другом потоке), вы должны инициализировать сокеты из основного потока, вызвав Initialize(), прежде чем создавать другие.

Смотрите здесь для более подробного объяснения

Вызов

wxSocketBase::Initialize();

в ваших приложениях функции OnInit и wxurl/wxhttp должны работать из потоков.

Другие вопросы по тегам