我在线程内使用 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 连接?
这是答案(根据@bluefeet的要求)
wxHTTP 继承自 wxSocketBase 并且在 wxSocketBase 中我们有这样的引用
当从多个线程使用 wxSocket 时,即使是隐式的(例如,在另一个线程中使用 wxFTP 或 wxHTTP),您也必须在创建其他套接字之前通过调用 Initialize() 从主线程初始化套接字。
See here http://docs.wxwidgets.org/trunk/classwx_socket_base.html以获得更多解释
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)