网站首页 > 文章中心 > 其它

vb.net线程数量_vb.net timer控件 主线程

作者:小编 更新时间:2023-08-21 00:21:13 浏览量:173人看过

VB.NET 简单多线程

多线程一般是不推荐用的,因为线程之间如果有共享资源的话会引起竞争,需要加锁处理;而且线程间没有时序关系,所以你在调试中可能会出现异步处理结束顺序与开始处理顺序不一致的情况(我在调试中已经发现该问题).

针对你提出的这个问题,采用了多线程处理,利用的是BackgroundWorker也就是异步处理控件进行了处理.

代码已经经过调试通过.欢迎交流,如有问题,留下QQ或其他联系方式.

代码如下,并附程序截图.

'---------------------------------------------------

Imports?System.ComponentModel?'导入异步控件命名空间

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

Private?Sub?addHandle()

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

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

Private?Sub?startWork()

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

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

AnalysisNumber(i).RunWorkerAsync(temp)

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

e.Result?=?data

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

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

ListBox1.Items.Add(data(i))

End?Class

VB.net 如何设计多线程运行

Sub Main()

Dim thr As Thread

MulParams =Pi vbTab sFile vbTab dFile vbTab 1 vbTab DelN vbTab cr vbTab cg vbTab cb vbTab IndexI

GlobalParamas(pi)=MulParams .Split(vbTab)

thr=New Thread(AddressOf MyMulThreadCaller)

thr.Start() //启动多线程进程

Application.DoEvents

End Sub

红糖暖胃____关于控制VB.NET的多线程thead抛出的线程数量的问题.__冰天雪地裸体腾空360'跪玻璃渣问

我告诉你思路,你自己去实现.

还有一种方法,叫"线程池",也就是你说的方法,稍微复杂一点:

指定一个变量,用来表示线程的数量.刚开始为0,每开一个线程+1.当一个线程完成任务退出后,这个变量-1.直到所有任务都完成后,不再产生新线程.

vb.net 循环使用多线程

ListBox操作需要用Invoke.另外多线程方式并不是并行处理.

vb.net里如何设置多线程?

首先,你把你那些要运行很久的过程.尽量放在一个过程中.

因为线程只能是过程,不能使函数,没有返回值的.

然后,在某个事件下这样写:

**这里我假设你的那个很就的过程叫做 sub aaa()

调用如下:

Dim mythread As New System.Threading.Thread(AddressOf aaa)

mythread.Start()

***********

这样就是定义一个线程,名字叫 mythread,这个线程会运行aaa这个过程.

start 就是让线程运行.

以上就是土嘎嘎小编为大家整理的vb.net线程数量相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章