Rainbow писал(а):<из запроса получили, что nDay = 1>
Novichok$ писал(а):Если бы в таблице стояли просто число и время, тогда понятно, по средствам SQL запроса выбираю ближайшую дату и вперед
Rainbow писал(а):Господа, а можно вопрос?
Кто на разлогиненном компе будет в час ночи запускать бережно написанный exe с таймером?
По-моему, тут пахнет сервисом.
В принципе, в .NET есть классы, чтобы написать такой сервис. Правда, как это делается - я не знаю (пока )
SevverIndex | Тип | Start Date | День Недели | День Месяца
1 1 25.02.05 02:00AM NULL NULL
1 4 26.02.05 02:00AM NULL NULL
2 2 26.02.05 02:00AM NULL 25
2 3 26.02.05 02:00AM 1 NULL
2 3 26.02.05 02:00AM 4 NULL
3 5 26.02.05 02:00AM NULL NULL
4 6 26.02.05 02:00AM NULL NULL
Novichok$ писал(а):Класс твой по ссылке я сейчас "мучаю" (или он меня : )) )
If MessageBox.Show("Continue running?", "Count is: " & alarmCounter, _
MessageBoxButtons.YesNo) = DialogResult.Yes
Rainbow писал(а):Спасибо, Макс за идею. Но, мне кажется, что вычисление даты следующего сеанса – это лишняя информационная нагрузка на базу, избыточные сведения. Ведь и по имеющимся данным можно вычислить, надо сейчас запускать или нет... К тому же, поскольку программа работает постоянно, то, если очень хочется, дату и время следующего сеанса можно вычислять и хранить в программе. Базе эти сведения ни к чему.
kroskros писал(а):то наверно есть все-таки смысл "нагрузить" БД, зато снизить нагрузку на процессор, ведь каждый раз прийдется делать вычисления, а запись не одна...
kroskros писал(а):Резидентная прога будет висеть постоянно, отъедая ресурсы...
а оно надо?
Private Shared Timer1 As New System.Windows.Forms.Timer
Private Shared exitFlag As Boolean = False
Public Shared Sub TimerEventProcessor(ByVal myObject As Object, _
ByVal myEventArgs As EventArgs)
Timer1.Stop()
Dim dMin As String
dMin = "33"
If Date.Now.Minute = dTag Then
MessageBox.Show(Date.Now.Minute)
Timer1.Enabled = True
Else
exitFlag = True
End If
End Sub
Public Shared Sub Main()
AddHandler Timer1.Tick, AddressOf TimerEventProcessor
Timer1.Interval = 5000
Timer1.Start()
While exitFlag = False
Application.DoEvents()
End While
End Sub
End Class
dMin = "33"
If Date.Now.Minute = dTag Then
Как только минута истекает таймер выпрыгивает из цикла.
While True 'exitFlag = False
Application.DoEvents()
End While
Сейчас этот форум просматривают: Mail.ru [бот] и гости: 41