以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  定时器请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=42432)

--  作者:CRM2013
--  发布时间:2013/11/11 18:14:00
--  定时器请教

在窗口设置了个按钮每3分钟发送邮件

 

e.Form.TimerEnabled = True
e.Form.TimerInterval = 180000

 

在窗口的timetick中写了相关邮件发送的代码,其中每到100封后手工确认是否继续发送, 但发现到了100封后还在继续发送,不知错在哪里?

 

If i Mod 100 = 0 AndAlso i > 0  Then
            e.Form.TimerEnabled = False
            Dim Result As DialogResult
            Result = MessageBox.Show("已经批量发送【" & i & "】封邮件,点击确认将继续发送,点击取消将退出"   , "提示", MessageBoxButtons.OkCancel, MessageBoxIcon.Question)
            If Result = DialogResult.Ok Then
                e.Form.TimerEnabled = True
                Return
            End If


--  作者:CRM2013
--  发布时间:2013/11/11 18:29:00
--  

补充一下,下面的计算数量后的确认的代码是写在timertick中的

 

。。。。邮件发送代码

If i Mod 100 = 0 AndAlso i > 0  Then
            e.Form.TimerEnabled = False
            Dim Result As DialogResult
            Result = MessageBox.Show("已经批量发送【" & i & "】封邮件,点击确认将继续发送,点击取消将退出"   , "提示", MessageBoxButtons.OkCancel, MessageBoxIcon.Question)
            If Result = DialogResult.Ok Then
                e.Form.TimerEnabled = True
                Return
            End If


--  作者:有点甜
--  发布时间:2013/11/11 19:19:00
--  
 第一个问题,你的 i 定义是public变量么?

 第二个问题,你的 i 在发送一次邮件以后,会自动加1了么?

--  作者:CRM2013
--  发布时间:2013/11/11 20:49:00
--  

i 是在timertick中定义的静态变量

 

每发送一个会增加1的,因为我将下面的100调整为5时,已经从messagebox中显示了“已经批量发送5封”

 

您上面提到的这2个问题应该没错误。

 

If i Mod 100 = 0 AndAlso i > 0  Then
            e.Form.TimerEnabled = False
            Dim Result As DialogResult
            Result = MessageBox.Show("已经批量发送【" & i & "】封邮件,点击确认将继续发送,点击取消将退出"   , "提示", MessageBoxButtons.OkCancel, MessageBoxIcon.Question)
            If Result = DialogResult.Ok Then
                e.Form.TimerEnabled = True
            End If


--  作者:有点甜
--  发布时间:2013/11/11 21:00:00
--  
 可能timeenabled有所一些延迟,会多几封邮件,你可以多加一个变量来判断是否再发送嘛。