当前位置:编程学习 > VB >>

为什么FOR 循环加了 DOEVENTS 还是非常卡呢?

我做了个邮件循环发送的程序,
在左边的列表里有一个LIST控件,里边有几十封邮件,用FOR循环依次发送邮件到这个邮箱,在循环的过程中加入 调用JMAIL的 发送邮件的一个SUB过程。

软件执行时很卡,加了DOEVENTS 没我效果,照样也很卡,

这是什么原因呢? DOEVENTS 什么情况下才能发挥作用。 注释掉JMAIL发送邮件的一个SUB肯定不会卡的
就比如
do
 for i=0 To 1000000000
     i=i+1
 Next
 doEvents
loop
这里的doEvents是不会起太大作用的
JAMIL的SUB不能注释掉啊,这情况下有没有办法解决卡的问题? 原因在于您的邮件可能较大,jmail发送一封邮件相对时间较长,而doevents只在发送间隔有效,因此有一些卡。
解决办法:
使用ActiveX EXE多线程调用jamil。 单独写个程序调用JMAIL发送邮件, 然后另一个程序通讯控制它 楼上的都是正解
引用 4 楼 wallescai 的回复:
单独写个程序调用JMAIL发送邮件, 然后另一个程序通讯控制它

谢谢,能说详细点吗? 可能是访问网络等待返回卡在那的,doevents是访问前或访问后的事情,
vb的解决办法是做管理程序和发送程序,
管理端只负责把要发送的邮件送到队列中,
发送程序卡不卡,管理端才感觉不到
引用 6 楼 z1522611101 的回复:
引用 4 楼 wallescai 的回复:

单独写个程序调用JMAIL发送邮件, 然后另一个程序通讯控制它

谢谢,能说详细点吗?


几种方式:
1: 把发送邮件的程序写成带参数输入的, 另一个程序就可以通过参数来调用它发送邮件了
2: 通过DDE或TCP等方式两个程序通讯
引用 6 楼 z1522611101 的回复:
引用 4 楼 wallescai 的回复:

单独写个程序调用JMAIL发送邮件, 然后另一个程序通讯控制它

谢谢,能说详细点吗?


几种方式:
1: 把发送邮件的程序写成带参数输入的, 另一个程序就可以通过参数来调用它发送邮件了
2: 通过DDE或TCP等方式两个程序通讯 单独写个程序调用JMAIL发送邮件, 然后另一个程序通讯控制它 doEvents 会占CPU资源,要配合sleep(10),降低doEvents的执行频度。
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,