نوشته شده توسط
nasim bahari
سلام.....ریکی جان......
اون برنامه ای که با VB بود رو نیگاه کردم......بازم از تایمر استفاده می کرد........
دوستان توجه کنند که من با کار با ساعت و یا تاریخ و همچنین پایگاه داده مشکلی ندارم...فقط مسئله استراتژی یادآوری هستش..........
راستی ....اگه میشه....یه نیگاهی به برنامه C بنداز . آخه ما سوات زبان C نداریم......ممنون میشم........
سامان جان ....شما هم ما رو فراموش نکن........
اینی که از Timer استفاده نکنید ممکن نیست.
اما می تونید با ترکیب اون با Window Service و Thread بهینه استفاده کنید که نخواید هر ثانیه چک کنی.
لطفا به لینک هایی که می گزارم الطفات بیشتری داشته باشید!
http://www.vbdotnetheaven.com/upload...scheduler.aspx
--------------------------------------
Quartz.NET - Enterprise Job Scheduler for .NET Platform
این لینک یک پروژه Open Source در SourceForge هست که برای دریافت اون باید از فیلتر شکن استفاده کنید.
---------------------------------------------------------
این کد همون کد C# هست که شما فرمودید متوجه نشدید.
Imports System.Threading
Class TimerExample
Private Shared Sub Main()
Dim autoEvent As New AutoResetEvent(False)
Dim statusChecker As New StatusChecker(10)
' Create the delegate that invokes methods for the timer.
Dim timerDelegate As New TimerCallback(AddressOf statusChecker.CheckStatus)
' Create a timer that signals the delegate to invoke
' CheckStatus after one second, and every 1/4 second
' thereafter.
Console.WriteLine("{0} Creating timer." & vbLf, DateTime.Now.ToString("h:mm:ss.fff"))
Dim stateTimer As New Timer(timerDelegate, autoEvent, 1000, 250)
' When autoEvent signals, change the period to every
' 1/2 second.
autoEvent.WaitOne(5000, False)
stateTimer.Change(0, 500)
Console.WriteLine(vbLf & "Changing period." & vbLf)
' When autoEvent signals the second time, dispose of
' the timer.
autoEvent.WaitOne(5000, False)
stateTimer.Dispose()
Console.WriteLine(vbLf & "Destroying timer.")
End Sub
End Class
Class StatusChecker
Private invokeCount As Integer, maxCount As Integer
Public Sub New(count As Integer)
invokeCount = 0
maxCount = count
End Sub
' This method is called by the timer delegate.
Public Sub CheckStatus(stateInfo As [Object])
Dim autoEvent As AutoResetEvent = DirectCast(stateInfo, AutoResetEvent)
Console.WriteLine("{0} Checking status {1,2}.", DateTime.Now.ToString("h:mm:ss.fff"), (System.Threading.Interlocked.Increment(invokeCoun t)).ToString())
If invokeCount = maxCount Then
' Reset the counter and signal Main.
invokeCount = 0
autoEvent.[Set]()
End If
End Sub
End Class