真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

包含vb.net能多核運(yùn)算的詞條

關(guān)于VB的多線程問題,是單線程快還是多線程快?知道的請將結(jié)果發(fā)至QQ1653073865。

不管單線程 還是多線程,都是CPU執(zhí)行,而 CPU一個(gè)核只能執(zhí)行一個(gè)線程。

目前創(chuàng)新互聯(lián)公司已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、鳳泉網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

也就是說,如果電腦是多核CPU可能多線程快, 如果是單核,那么就是單線程快

這里的快事 CPU滿負(fù)荷運(yùn)行, 如要是處理網(wǎng)絡(luò)任務(wù) ,需要延時(shí)等待 ,多線程跟好

怎么在vb.net里用多線程縮短循環(huán)時(shí)間

多線程并不一定就可以縮短時(shí)間,具體要看你上面的“過程”是否調(diào)用數(shù)據(jù)庫完成。如果調(diào)用了數(shù)據(jù)庫,可以考慮用存儲過程替代“過程”。另外看看“過程”里是否反復(fù)打開和關(guān)閉了數(shù)據(jù)庫連接,如果是,這才是真正的耗時(shí)動作。如果沒調(diào)用數(shù)據(jù)庫,可以考慮使用Parallel類(.net4以后)里面的函數(shù),使多個(gè)任務(wù)在多核CPU上并行運(yùn)行,縮短時(shí)間。

VB.NET 簡單多線程

多線程一般是不推薦用的,因?yàn)榫€程之間如果有共享資源的話會引起競爭,需要加鎖處理;而且線程間沒有時(shí)序關(guān)系,所以你在調(diào)試中可能會出現(xiàn)異步處理結(jié)束順序與開始處理順序不一致的情況(我在調(diào)試中已經(jīng)發(fā)現(xiàn)該問題)。

針對你提出的這個(gè)問題,采用了多線程處理,利用的是BackgroundWorker也就是異步處理控件進(jìn)行了處理。

代碼已經(jīng)經(jīng)過調(diào)試通過。歡迎交流,如有問題,留下QQ或其他聯(lián)系方式。

代碼如下,并附程序截圖。

‘---------------------------------------------------

Imports?System.ComponentModel?'導(dǎo)入異步控件命名空間

Public?Class?Form1

Private?howmany?As?Integer?=?10

Private?AnalysisNumber(0?To?howmany?-?1)?As?BackgroundWorker

Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click

ListBox1.Items.Clear()

creatNewBackgroundWorker()

addHandle()

startWork()

End?Sub

Private?Sub?creatNewBackgroundWorker()

For?i?As?Integer?=?0?To?AnalysisNumber.Length?-?1

AnalysisNumber(i)?=?New?BackgroundWorker

Next

End?Sub

Private?Sub?addHandle()

For?i?As?Integer?=?0?To?AnalysisNumber.Length?-?1

AddHandler?AnalysisNumber(i).DoWork,?AddressOf?AnalysisNumber_DoWork

AddHandler?AnalysisNumber(i).RunWorkerCompleted,?AddressOf?AnalysisNumber_RunWorkerCompleted

Next

End?Sub

Private?Sub?startWork()

For?i?As?Integer?=?0?To?9

Dim?temp(0?To?9)?As?Integer

For?j?As?Integer?=?1?To?10

temp(j?-?1)?=?10?*?i?+?j

Next

AnalysisNumber(i).RunWorkerAsync(temp)

Next

End?Sub

Private?Sub?AnalysisNumber_DoWork(ByVal?sender?As?Object,?ByVal?e?As?System.ComponentModel.DoWorkEventArgs)

Dim?data?As?Integer()

data?=?CType(e.Argument,?Integer())

Dim?temp?As?Integer

For?i?As?Integer?=?0?To?data.Length?-?1

temp?=?data(i)

data(i)?=?temp?*?temp

Next

e.Result?=?data

End?Sub

Private?Sub?AnalysisNumber_RunWorkerCompleted(ByVal?sender?As?Object,?ByVal?e?As?System.ComponentModel.RunWorkerCompletedEventArgs)

Dim?data?As?Integer()

data?=?CType(e.Result,?Integer())

For?i?As?Integer?=?0?To?data.Length?-?1

ListBox1.Items.Add(data(i))

Next

End?Sub

End?Class

vb.net 循環(huán)使用多線程

ListBox操作需要用Invoke。另外多線程方式并不是并行處理。

建議采用.net framework 4 帶的并行處理循環(huán)操作,若不是4.0版本的framework,可以使用Aforge的并行庫比較方便。

Vb.net 怎樣操作有參數(shù)的多線程而且還是循環(huán)的。

Sub?Main()

Dim?thr?As?New?Thread(AddressOf?循環(huán))

thr.Start("a")

End?Sub

Sub?循環(huán)(a()?As?String)

'這里隨你干什么循環(huán)也行

For?Each?i?As?String?In?a

MsgBox(i)

Next

End?Sub

看懂了吧 參數(shù)只能有一個(gè) 也可以不是數(shù)組,在a() As String的a后面去掉括號就行

vb.net 怎樣操作帶參數(shù)的多線程

public class threadclass

{

public int a;

public void threadmethod()

{

//use a;

}

}

...

threadclass tc = new ....

tc.a = 10;

Thread t = new ThreadStart(tc.threadmethod);

t.Start


網(wǎng)頁標(biāo)題:包含vb.net能多核運(yùn)算的詞條
轉(zhuǎn)載來源:http://weahome.cn/article/hopcgo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部