【发布时间】:2014-02-15 23:08:02
【问题描述】:
我有一个预先定义的机器列表和以分钟为单位的恒定持续时间。
当我的程序从机器接收输入时,每台机器都会机械启动,并且我将机器 id、开始时间、持续时间的附加值与开始时间作为结束时间、机器的持续时间和状态存储在 sql server 数据库中。
在 win forms 屏幕中使用 vb .net 和 listview 我正在显示表格中的数据并通过计时器刷新它。计时器间隔为一秒。该查询还计算经过的时间并显示在列表视图中。并且当持续时间和经过的分钟数达到相等时,从 UI 程序发送一个信号来更新数据库。现在使用计时器来此活动或 threading.task 更有效是明智的。非常感谢任何帮助。
对于参考,带有查询的代码是
Sub loadfromtable()
Try
ListView1.Items.Clear()
Dim qry As String = "select *,DATEDIFF(second,starttime,cast(GETDATE()AS time))/60 as etime from tblconsole where status='A' AND DATEDIFF(second,starttime,cast(GETDATE()AS time))>0"
'old qry --"select *,'' as [etime] from tblconsole where status='A'"
Using db As New sqlDataclass
Dim dt As DataTable = db.bindData(qry)
If Not dt Is Nothing AndAlso dt.Rows.Count > 0 Then
For Each r As DataRow In dt.Rows
Dim itm As New ListViewItem(r(0).ToString)
itm.SubItems.Add(r(1).ToString())
itm.SubItems.Add(r(2).ToString())
itm.SubItems.Add(r(4))
itm.SubItems.Add(r(3))
itm.SubItems.Add(r("etime"))
ListView1.Items.Insert(0, itm)
Next
End If
End Using
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
End Sub
【问题讨论】:
标签: .net vb.net timer task-parallel-library