以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]TimeSpan 用法?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=80193)

--  作者:石四
--  发布时间:2016/1/18 12:02:00
--  [求助]TimeSpan 用法?

教程例子:

假定希望系统每十分钟自动备份一次项目,可以增加一个计划,计划的执行间隔600000(毫秒),也就是10分钟,计划的代码为:

Static dt As Date \'静态变量,用于保存上次备份的时间
Dim tp As TimeSpan
tp = Date.Now - dt
If tp.TotalHours >= 1 Then \'如果距离上次备份已经超过一个小时
    dt = Date.Now
    Syscmd.Project.Backup("c:\\data", True) \'自动备份到c:\\data目录
End If

 

我在OpenQQ客户端的MessageReceived事件中编写代码:

 

Dim pts() As String  = e.Message.Split("|")
If pts.Length = 3 AndAlso pts(0) = "+@" \'如果是申请审核消息
    Static dt As Date \'静态变量,用于保存收到信息的时间
    Dim tp As TimeSpan
    tp = Date.Now - dt
    If tp.TotalSeconds >= 5.5 Then \'如果距离收到信息的时间已经超过5,5秒
        dt = Date.Now
        PopMessage("本月应付报表" & "已由" & pts(2) & "上传,请审批","报表上传提示", PopIconEnum.Infomation)
    End If
End If

 

收到信息后弹窗直接弹出,未延迟5.5秒。

哪段代码没用对?

 

 


--  作者:大红袍
--  发布时间:2016/1/18 12:04:00
--  
Static dt As Date = Date.Now
--  作者:大红袍
--  发布时间:2016/1/18 12:06:00
--  

不要在这个时间这样做。

 

你单独做一个计划管理,把那个计划启用就好

 

http://www.foxtable.com/help/topics/0658.htm

 


--  作者:石四
--  发布时间:2016/1/18 12:19:00
--  
以下是引用大红袍在2016/1/18 12:06:00的发言:

不要在这个时间这样做。

 

你单独做一个计划管理,把那个计划启用就好

 

http://www.foxtable.com/help/topics/0658.htm

 

做个计划管理,OPENQQ收到信息后启动,是这个意思吧?


--  作者:大红袍
--  发布时间:2016/1/18 14:41:00
--  
是的,比如做个计划管理,设置成5000启动,接收到消息后,把这个计划启用。在计划内部把自己关闭,这样就是延时了。
--  作者:石四
--  发布时间:2016/1/18 14:55:00
--  
好的