如果让不同的任务异步执行

时间:2023-01-28 07:26:45
我现有一个小程序,需要几个任务一块执行并且不能相互干扰,用TIMER方式好像不是很好,用多线程在VB下不是多稳定!想请问下,还有什么好的办法可以异步执行吗,比如任务A、B、C等等N多小任务,怎么让他们比如过1分钟触发一次,并且互相不干扰各自运行各自的那!首先声明我的程序任务很多,大概几百个 !不知道是否还有别的实现方式,我想这个问题有需要人都想知道的,请各位高手发表下大家的看法,先谢谢了

9 个解决方案

#1


貌似vb没有真正的多线程

把它们做成单独exe,然后在主程序里调用

#2


几百个任务,需要很好得规划一下如何调度。让一台机器完成,是不是有些牵强?

#3


单独做成EXE不大明白,我用ACTIVEX EXE制作的,那些都没问题!但是几百个任务该如何异步执行那

#4


在主exe中,把任务交给单独的另外一个Exe来执行。

#5


做任务队列,然后可以 Timer 控件执行对列。
要考虑任务添加、任务删除、任务执行、任务队列排序(还要考虑优先级问题),
最重要的就是无论是添加、删除、执行,都要做过程交换等待,否则会乱的。

#6


这个问题好眼熟,莫非楼主就是上次发的那个用几百的timer的?
如果楼主这N个任务都是互不相同的话,那么在VB中最简单的方法就是分拆成一个个单独的独立程序,然后由一个类似*主控程序的用户界面来负责通讯和调度. 通讯方式可以多种多样, TCP或者DDE都是比较简单和成熟的方法. 这样作的好处是各个任务相互独立,不会发生死一个崩全部的问题,调试也简单,写一个exe调试一个,相互之间不影响进度. 而且还都是异步执行的, 如果你有个多核CPU就能发现系统会自动调度任务到不同核心上跑.

#7


.......关注一下.

#8


我做过一个GPRS多连接的程序,每天会有一百多个连接连到这个程序上。我是每过来一个连接,就动态分配一个窗体给它(窗体处理此连接的各种数据信息,加了TIMER处理一些事情)。Tcp 连接断开时,销毁窗体。程序运行一、两年了,也没有什么问题。

#9


用VB.Net吧

#1


貌似vb没有真正的多线程

把它们做成单独exe,然后在主程序里调用

#2


几百个任务,需要很好得规划一下如何调度。让一台机器完成,是不是有些牵强?

#3


单独做成EXE不大明白,我用ACTIVEX EXE制作的,那些都没问题!但是几百个任务该如何异步执行那

#4


在主exe中,把任务交给单独的另外一个Exe来执行。

#5


做任务队列,然后可以 Timer 控件执行对列。
要考虑任务添加、任务删除、任务执行、任务队列排序(还要考虑优先级问题),
最重要的就是无论是添加、删除、执行,都要做过程交换等待,否则会乱的。

#6


这个问题好眼熟,莫非楼主就是上次发的那个用几百的timer的?
如果楼主这N个任务都是互不相同的话,那么在VB中最简单的方法就是分拆成一个个单独的独立程序,然后由一个类似*主控程序的用户界面来负责通讯和调度. 通讯方式可以多种多样, TCP或者DDE都是比较简单和成熟的方法. 这样作的好处是各个任务相互独立,不会发生死一个崩全部的问题,调试也简单,写一个exe调试一个,相互之间不影响进度. 而且还都是异步执行的, 如果你有个多核CPU就能发现系统会自动调度任务到不同核心上跑.

#7


.......关注一下.

#8


我做过一个GPRS多连接的程序,每天会有一百多个连接连到这个程序上。我是每过来一个连接,就动态分配一个窗体给它(窗体处理此连接的各种数据信息,加了TIMER处理一些事情)。Tcp 连接断开时,销毁窗体。程序运行一、两年了,也没有什么问题。

#9


用VB.Net吧