public static string getXmlFile(String url, String paramList,string referer)
創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元瓦房店做網(wǎng)站,已為上家服務(wù),為瓦房店各地企業(yè)和個(gè)人服務(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)用就行了 費(fèi)了好長時(shí)間才弄出來 我調(diào)試過了 能行 如果對(duì)你有用就給分吧
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?'多線程返回值測試,當(dāng)線程運(yùn)行完成激發(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
這個(gè)線程對(duì)象一定有個(gè)完成時(shí)或者進(jìn)行中的動(dòng)作,你可以用AddHandler語句來將過程委托給ProcessChanged或者ProcessConpleted動(dòng)作。
主線程并發(fā)執(zhí)行,主線程是一種返回字符串長度的簡單方法:
EndInvoke做三件事。首先,它會(huì)等待異步委托vb.net教程完成執(zhí)行(如果尚未執(zhí)行)。其次,它接收返回值(以及任何ref或out參數(shù))。第三,它將所有未處理的工作程序異常拋出回調(diào)用線程。
如果您使用異步委托調(diào)用的方法沒有返回值,則仍然(在技術(shù)上)有義務(wù)調(diào)用EndInvoke。實(shí)際上,這是有爭議的。沒有EndInvoke警察對(duì)違規(guī)者進(jìn)行處罰!但是,如果您選擇不調(diào)用EndInvoke,則需要考慮worker方法上的異常處理,以避免無提示的失敗。
您還可以在調(diào)用BeginInvoke時(shí)指定一個(gè)回調(diào)委托-一種接受IAsyncResult對(duì)象的方法,該方法在完成后會(huì)自動(dòng)調(diào)用。這允許煽動(dòng)線程“忘記”異步委托,但是在回調(diào)端需要一些額外的工作:
ginInvoke的最后一個(gè)參數(shù)是填充IAsyncResult的AsyncState屬性的用戶狀態(tài)對(duì)象。它可以包含您喜歡的任何內(nèi)容;在這種情況下,我們使用它將方法委托傳遞給完成回調(diào),因此我們可以在其上調(diào)用EndInvoke。
Thread不會(huì)返回值的。你應(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)
首先,你把你那些要運(yùn)行很久的過程。盡量放在一個(gè)過程中。
因?yàn)榫€程只能是過程,不能使函數(shù),沒有返回值的。
然后,在某個(gè)事件下這樣寫:
**這里我假設(shè)你的那個(gè)很就的過程叫做 sub aaa()
調(diào)用如下:
Dim mythread As New System.Threading.Thread(AddressOf aaa)
mythread.Start()
***********
這樣就是定義一個(gè)線程,名字叫 mythread,這個(gè)線程會(huì)運(yùn)行aaa這個(gè)過程。
start 就是讓線程運(yùn)行。
文章標(biāo)題:vb.net線程返回值 VB函數(shù)返回值
地址分享:http://chinadenli.net/article22/hgcgcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、網(wǎng)站排名、品牌網(wǎng)站設(shè)計(jì)、外貿(mào)建站、網(wǎng)站營銷、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)