wxHTTP&主题

时间:2012-04-08 22:25:31

标签: c++ multithreading wxwidgets wxhttp

我在Thread中使用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 个答案:

答案 0 :(得分:2)

这是答案(根据@bluefeet的要求) wxHTTP继承自wxSocketBase,而在wxSocketBase中我们有这个引用

  

当从多个线程使用wxSocket时,即使是隐式的(例如在另一个线程中使用wxFTP或wxHTTP),你必须在创建其他线程之前通过调用Initialize()从主线程初始化套接字。

有关详细说明,请参阅here

答案 1 :(得分:1)

致电

wxSocketBase ::初始化();

在您的应用OnInit功能中 和wxurl / wxhttp函数应该从线程工作。