各位高手,帮忙看个多线程的问题!!!
我想编个程序,能得到一些网页的数据。
该程序大致过程如下,点击Open按钮,弹出一个打开文件对话框,读入一个文件(url列表)的内容到一个memo中;再点击Get按钮,则每次从memo中读取一行,取得url,再调用Tcppwebbrowser去访问该url
然后再获得该网页的的信息,如标题等。
现在的问题是,点击Get后,我想用多线程做。
请大家指点一下。
Get按钮的处理大致如下:
iCount = mmoURL->Lines->Count;// 得到url的个数
while (m_iIndex < iCount)
{
AnsiString sURL = mmoURL->Lines->Strings[m_iIndex]; // 得到一个url
m_iIndex++; // 当前访问的url
TThreadProxy *pThread = new TThreadProxy(true);
cpp->Navigate2(TVariant(sURL), NULL, NULL, NULL); // 访问该网页
DWORD dwResult = WaitForSingleObject(m_hEvent, INFINITE);
switch (dwResult)
{
case WAIT_OBJECT_0:
pThread->Resume();
break;
}
ResetEvent(m_hEvent);
}
TCppWebBrowser的处理过程大致如下:
NavigateComplete2(TObject *Sender,
LPDISPATCH pDisp, Variant *URL)
{
SetEvent(m_hEvent);
}
但线程好像根本就没有执行。
请问,哪里出了问题???
该程序大致过程如下,点击Open按钮,弹出一个打开文件对话框,读入一个文件(url列表)的内容到一个memo中;再点击Get按钮,则每次从memo中读取一行,取得url,再调用Tcppwebbrowser去访问该url
然后再获得该网页的的信息,如标题等。
现在的问题是,点击Get后,我想用多线程做。
请大家指点一下。
Get按钮的处理大致如下:
iCount = mmoURL->Lines->Count;// 得到url的个数
while (m_iIndex < iCount)
{
AnsiString sURL = mmoURL->Lines->Strings[m_iIndex]; // 得到一个url
m_iIndex++; // 当前访问的url
TThreadProxy *pThread = new TThreadProxy(true);
cpp->Navigate2(TVariant(sURL), NULL, NULL, NULL); // 访问该网页
DWORD dwResult = WaitForSingleObject(m_hEvent, INFINITE);
switch (dwResult)
{
case WAIT_OBJECT_0:
pThread->Resume();
break;
}
ResetEvent(m_hEvent);
}
TCppWebBrowser的处理过程大致如下:
NavigateComplete2(TObject *Sender,
LPDISPATCH pDisp, Variant *URL)
{
SetEvent(m_hEvent);
}
但线程好像根本就没有执行。
请问,哪里出了问题???
...全文
相关推荐
QT中sqlite多线程操作4个注意问题
总结了一下Qt中sqlite多线程操作遇到的几个问题,希望能对有需要的朋友一点帮助
《微信公众平台与小程序开发——从零搭建整套系统》第6章 微信网页开发
第6章 微信网页开发 网页是公众号承载服务和信息的主要载体之一,结合现在流行的HTML5和CSS3技术,可以在公众号承载的网页中创造出更多体验更佳的服务。在微信浏览器环境中的网页,可以通过WeixinJSBridge等技术,结合微信JS-SDK提供原生API的访问能力,同时也可以直接使用微信分享、扫一扫、卡券和微信支付等微信特有的功能,为微信用户提供更加优质的网页体验服务。 本章主要介绍和微信...
Java项目——模拟QQ群聊和私聊!!!(网络编程+多线程)-附件资源
Java项目——模拟QQ群聊和私聊!!!(网络编程+多线程)-附件资源
个人总结40个Java多线程面试问题和答案
个人总结40个Java多线程面试问题和答案,很全面,让你不再担心多线程的面试问题。
代码_C循环-求各位数字之积_
入一个英文句子和空格字符,则输出删除了所有空格的字符测试说明以下是测试样例:样例输入:abc333dgf3样例输出:abcdgf*/


