首页后端开发ASP.NETvb点虐多进程实现的简单介绍

vb点虐多进程实现的简单介绍

时间2023-04-23 18:39:01发布访客分类ASP.NET浏览1052
导读:VB多进程怎么做啊?就是那个啥activex exe的,能详细一点吗? VB的多线程比较吃力。多个线程最后想出的办法是用多个进程也就是你说的exe代替多个线程。一个form就是一个进程你搞几个from其实就是多进程也就是类似的多线程但是比较...

VB多进程怎么做啊?就是那个啥activex exe的,能详细一点吗?

VB的多线程比较吃力。多个线程最后想出的办法是用多个进程也就是你说的exe代替多个线程。一个form就是一个进程你搞几个from其实就是多进程也就是类似的多线程但是比较麻烦点而清凳已,顺喊正姿便给郑绝个建议VB.NET可以轻松解决多线程。

你好,是只有VB.NET能多线程,还是所有VB都能实现多线程?

简单回答:

1、当前来说,编程与运行环境合适的情况下,VB点虐与VB都有实现多线程的可能。

2、VB、VB点虐的最基本的概念,是调用系统的接口进行编程,只要系统提供“多线程”的功能调用,它们就能实现多线程。

3、VB注意于面向用户,面向任务,其高级的一些程序实现需要直接调用win的API,VB实现多线程的例子也可以在网络上搜索到。

一、关于VB、VB点虐的相关知识:

1、编程指的是用人类能理解的语言来编写指令集,并通过专用的编译软肢腊件或环境脊饥族来转化这些指令,使得这些指令能让计算机识别,从而控制计算机做人类需要进行的工作。

2、也就是说无论是VB.NET还是VB它们都只是“人类能理解的语言”,它们通过专用的编译软件或环境来转化这些指令,进而操作电脑。

3、进一步特化到VB上去说。VB基于VB的运行库,它的运行库又基于win的API((Application Programming Interface,应用程序编程接口)是一些预先定义的函数),也就是说,VB的很多(多到90%以上)的功能是直接基于调用windows提供的一些基本接口函数。

4、VB点虐有什么不同呢,它基于点虐运行库。什么 意思?这个意思就是,微软发现win的API不够樱弊用了,不好用了,就打算在windows上加装点东西,让它有更多的接口函数。但要注意的是,多数情况下,这些接口比win的API的效率要低一些。在win7及以后的版本的win中,已经自含了点虐运行库。

5、顺便说,为什么很多人会发现win7的运行速度看起来要比xp慢呢,个人认为就是因为调用的是点虐的接口来实现的,点虐就是比API的慢。当然了,点虐的功能上要比xp原有的API的功能强。

6、VB与VB点虐在语法上是非常近似的,只是因为Visual Studio的版本不同,后期的Visual Studio已不提供简纯的VB了,注意它们的不同主要是后台核心调用的理念上的不同。

VB点虐 如何设计多线程运行

Sub Main()

Dim thr As Thread

For Pi As Integer=0 To 4 //启用5线弊尺基程

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

Next

End Sub

Vb 多进程技术

调用 2.exe 用 shell 方法就可以了.不用多说.

至于检测 5个 2.exe 是否全都结束的方法,可以在 1.exe 中添加1个TIMER ,设定每隔1秒遍历系统进程表.]

找出系统进程运正中 2.exe 的个数升信,若为 0个 则显示"处理完成"

遍历进程需要调用旁笑悔API:

Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long

Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long

Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long

Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long

Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Const MAX_PATH As Integer = 260

Type PROCESSENTRY32

dwSize As Long

cntUsage As Long

th32ProcessID As Long

th32DefaultHeapID As Long

th32ModuleID As Long

cntThreads As Long

th32ParentProcessID As Long

pcPriClassBase As Long

dwFlags As Long

szExeFile As String * MAX_PATH

End Type

Const TH32CS_SNAPheaplist = H1

Const TH32CS_SNAPPROCESS = H2

Const TH32CS_SNAPthread = H4

Const TH32CS_SNAPmodule = H8

Public Const TH32CS_SNAPall = TH32CS_SNAPPROCESS + TH32CS_SNAPheaplist + TH32CS_SNAPthread + TH32CS_SNAPmodule

'下面的"GetCount" 函数用于返回 2.exe 的个数:

Public Function GetCount()

Dim i As Long, lPid As Long

Dim k As Long

Dim Proc As PROCESSENTRY32

Dim hSnapShot As Long

hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPall, 0) '获得进程“快照”的句柄

Proc.dwSize = Len(Proc)

lPid = ProcessFirst(hSnapShot, Proc) '获取第一个进程的PROCESSENTRY32结构信息数据

i = 0

k = 0

Do While lPid 0

If InStr(1, Proc.szExeFile, "2.exe", vbTextCompare) 0 Then

k = k + 1

End If

i = i + 1

lPid = ProcessNext(hSnapShot, Proc) '循环获取下一个进程的PROCESSENTRY32结构信息数据

Loop

CloseHandle hSnapShot '关闭进程“快照”句柄

IsDone = k

End Function

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: vb点虐多进程实现的简单介绍
本文地址: https://pptw.com/jishu/6544.html
关于vbnet加cmd的信息 java应用程序源代码 java程序代码大全

游客 回复需填写必要信息