wxHTTP&线程(wxHTTP & Threads)

2019-09-16 10:38发布

我有一些问题与使用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连接?

Answer 1:

下面是答案(由@bluefeet要求)wxHTTP从wxSocketBase继承和wxSocketBase我们有这个报价

当从多个线程使用wxSocket,甚至暗示(例如,通过在另一个线程使用wxFTP或wxHTTP),您必须通过创建其他的之前调用初始化()初始化主线程的插槽中。

见这里为更多的解释



Answer 2:

呼叫

wxSocketBase ::初始化();

在您的应用程序的OnInit功能和wxurl / wxhttp职能应该从线程工作。



文章来源: wxHTTP & Threads