新聞中心
vb.net 多線程獲取網(wǎng)頁內(nèi)容
public static string getXmlFile(String url, String paramList,string referer)
創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元瓦房店做網(wǎng)站,已為上家服務(wù),為瓦房店各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575
{
HttpWebResponse res = null;
string strResult = " ";
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "GET ";
req.KeepAlive = true;
req.Referer=referer;
//CookieContainer cookieCon = new CookieContainer();
//req.CookieContainer = cookieCon;
//req.CookieContainer.SetCookies(new Uri(url),cookieheader);
StringBuilder UrlEncoded = new StringBuilder();
res = (HttpWebResponse)req.GetResponse();
Stream ReceiveStream = res.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding( "gb2312 ");
StreamReader sr = new StreamReader( ReceiveStream, encode );
Char[] read = new Char[256];
int count = sr.Read( read, 0, 256 );
while (count 0)
{
String str = new String(read, 0, count);
strResult += str;
count = sr.Read(read, 0, 256);
}
}
catch(Exception e)
{
strResult = e.ToString();
}
finally
{
if ( res != null )
{
res.Close();
}
}
return strResult;
}
多線程里調(diào)用就行了 費了好長時間才弄出來 我調(diào)試過了 能行 如果對你有用就給分吧
vb.net多線程如何返回參數(shù),舉個例子,謝謝
Public?Class?Form1
Public?Class?SquareClass?'把多線程調(diào)用的函數(shù)封裝到類中,通過類事件返回
Public?Value?As?Double
Public?Square?As?Double
Public?Event?ThreadComplete(ByVal?Square?As?Double)
Public?Sub?CalcSquare()
Square?=?Value?*?Value
RaiseEvent?ThreadComplete(Square)
End?Sub
End?Class
Dim?WithEvents?oSquare?As?SquareClass
Private?Sub?Button1_Click(sender?As?Object,?e?As?EventArgs)?Handles?Button1.Click?'多線程返回值測試,當線程運行完成激發(fā)事件
oSquare?=?New?SquareClass()
Dim?t?As?New?Threading.Thread(AddressOf?oSquare.CalcSquare)
oSquare.Value?=?30
t.Start()
End?Sub
Sub?SquareEventHandler(ByVal?Square?As?Double)?Handles?oSquare.ThreadComplete?'響應(yīng)事件函數(shù)
MsgBox("The?square?is?"??Square)
End?Sub
End?Class
VB.net 中創(chuàng)建線程時,線程所要執(zhí)行的 任務(wù)函數(shù) 怎么實現(xiàn)后期定義(就像回調(diào)函數(shù)一樣的)?
這個線程對象一定有個完成時或者進行中的動作,你可以用AddHandler語句來將過程委托給ProcessChanged或者ProcessConpleted動作。
主線程讀入字符串,子線程返回字符串長度
主線程并發(fā)執(zhí)行,主線程是一種返回字符串長度的簡單方法:
EndInvoke做三件事。首先,它會等待異步委托vb.net教程完成執(zhí)行(如果尚未執(zhí)行)。其次,它接收返回值(以及任何ref或out參數(shù))。第三,它將所有未處理的工作程序異常拋出回調(diào)用線程。
如果您使用異步委托調(diào)用的方法沒有返回值,則仍然(在技術(shù)上)有義務(wù)調(diào)用EndInvoke。實際上,這是有爭議的。沒有EndInvoke警察對違規(guī)者進行處罰!但是,如果您選擇不調(diào)用EndInvoke,則需要考慮worker方法上的異常處理,以避免無提示的失敗。
您還可以在調(diào)用BeginInvoke時指定一個回調(diào)委托-一種接受IAsyncResult對象的方法,該方法在完成后會自動調(diào)用。這允許煽動線程“忘記”異步委托,但是在回調(diào)端需要一些額外的工作:
ginInvoke的最后一個參數(shù)是填充IAsyncResult的AsyncState屬性的用戶狀態(tài)對象。它可以包含您喜歡的任何內(nèi)容;在這種情況下,我們使用它將方法委托傳遞給完成回調(diào),因此我們可以在其上調(diào)用EndInvoke。
VB.NET 在線程如何返回Function的值?
Thread不會返回值的。你應(yīng)該創(chuàng)建委托的,使用委托的異步方法
Dim funcInt32 As Func(Of String, Integer) = AddressOf GetList
Dim s As IAsyncResult = funcInt32.BeginInvoke("(參數(shù))", Nothing, Nothing)
’在要獲得結(jié)果的地方調(diào)用EndInvoke方法結(jié)束異步調(diào)用并獲得結(jié)果。
Dim result As Int32 = funcInt32.EndInvoke(s)
vb.net里如何設(shè)置多線程?
首先,你把你那些要運行很久的過程。盡量放在一個過程中。
因為線程只能是過程,不能使函數(shù),沒有返回值的。
然后,在某個事件下這樣寫:
**這里我假設(shè)你的那個很就的過程叫做 sub aaa()
調(diào)用如下:
Dim mythread As New System.Threading.Thread(AddressOf aaa)
mythread.Start()
***********
這樣就是定義一個線程,名字叫 mythread,這個線程會運行aaa這個過程。
start 就是讓線程運行。
分享名稱:vb.net線程返回值 VB函數(shù)返回值
URL網(wǎng)址:http://fisionsoft.com.cn/article/hgcgcc.html