以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多线程问题, 哪位大神 可以释疑??  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85577)

--  作者:dwq547467075
--  发布时间:2016/5/28 23:37:00
--  多线程问题, 哪位大神 可以释疑??
UploadFile/2016-5/201652823363194780.png[/upload]
图片点击可在新窗口打开查看此主题相关图片如下:123.png
图片点击可在新窗口打开查看

获取网页数据, 单线程 需要四十多分钟, 我想用多线程 缩短时间, 但是多线程 测试  程序闪退!!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


多线程问题, 哪位大神 可以释疑??
[此贴子已经被作者于2016/5/29 13:49:45编辑过]

--  作者:dwq547467075
--  发布时间:2016/5/29 14:58:00
--  
图片点击可在新窗口打开查看
--  作者:大红袍
--  发布时间:2016/5/29 22:37:00
--  

mark 多线程委托

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:dwq547467075
--  发布时间:2016/5/30 15:02:00
--  
这样一来, 等于没用 多线程 ,  而且 使用内部函数 没有达到缩短 时间的效果

图片点击可在新窗口打开查看  能做到缩短时间的效果不 


--  作者:大红袍
--  发布时间:2016/5/30 16:02:00
--  

直接这样方法也不行,过快的获取,人家网站就把你给屏蔽了。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1 (3).table
 

 

Dim rw As Row = CurrentTable.Current
Dim url As String = "http://data.eastmoney.com/stockcomment/" & rw("股票代码").SubString(rw("股票代码").Length - 6)  & ".html"
output.show(url)
Dim rqst As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(url)

Dim rsps As System.Net.HttpWebResponse = rqst.GetResponse

Dim stm As System.IO.Stream = rsps.GetResponseStream()

Dim reader As New System.IO.StreamReader(stm, EnCoding.Default)

Dim str As String = reader.ReadToEnd

Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=>机构参与度为).+?(?=%)")
If mc.count > 0 Then
    rw("第七列") = mc(0).value
End If
rsps.Close
stm.Close
reader.close

 



--  作者:大红袍
--  发布时间:2016/5/30 16:04:00
--  
 或者,你用单线程,或者是委托,结合5楼的方法去做,至少比webbrowser获取的速度会快很多。
--  作者:dwq547467075
--  发布时间:2016/5/31 21:54:00
--  
图片点击可在新窗口打开查看
--  作者:大红袍
--  发布时间:2016/5/31 22:44:00
--  
用5楼的代码啊。
--  作者:凡夫俗子
--  发布时间:2016/6/27 14:35:00
--  
BaseMainForm.Invoke(New _Delegate(AddressOf _MyDelegateMethod), "获取数据", Nothing)

这样的函数调用。如何实现 参数的传递呢

--  作者:大红袍
--  发布时间:2016/6/27 15:09:00
--  

红色代码,就是传递参数

 

 BaseMainForm.Invoke(New _Delegate(AddressOf _MyDelegateMethod), "获取数据", new object(){"参数1", "参数2", 变量3})