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 должны работать из потоков.