Help with sleep

Posted on 2002-03-28
Last Modified: 2012-05-04

i want my application to call a certain function every 10 minutes. while it is not doing anything i want it to sleep.

do i need to import the system32 sleep function? and will this keep it from using any resources while its idle? i mean, i just dont wanna keep running thru a loop.
any code would be great.

thanks - js
Question by:jeremiahscott
LVL 43

Accepted Solution

TimCottee earned 100 total points
ID: 6903072
Use a timer control and set the interval to 60000 (MSec)

Check for elapsed time >= 10 minutes and there you go:

Dim dteLastRun As Date

Private Sub Timer1_Timer()
  If DateDiff("s",dteLastRun,Now()) > 600 Then
    'Run my routine
    dteLastRun = Now()
  End If
End Sub

Expert Comment

ID: 6903076
Use Timer control and on timer event calculate if the time is come to do something.
Sleep is also good.

Expert Comment

ID: 6903079
Tim alredy explain :)
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

LVL 22

Expert Comment

ID: 6903120
FYI--any use of the timer will create a thread that runs in the background, so it's still taking up processor time, but is minimal.  The only way to really overcome this is to have a hook into the Windows O/S that checks some flag every cycle through its processing, then "calls back" to the application at the proper time.  This is not worth the effort for something as simple as a timed event.

Expert Comment

ID: 6903135
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
LVL 18

Expert Comment

ID: 6903146
sleep is ok, but is seems to render your application 'not responding' on the task list if you sleep for a long peiod

sleep 600000   'for example (10 mins)
LVL 15

Expert Comment

ID: 6903606
Sleep = Not good
Timer = vbOK And vbYes

Expert Comment

ID: 6903707
If the sole purpose of your program is to execute this function periodically, and it need not do anything else, Sleep is fine and I suspect would use no more, perhaps less resource than the timer, if other actions need to take place then use the timer control.
LVL 22

Expert Comment

ID: 6903744
>Timer = vbOK And vbYes

Ameba, you're funny, but...
vbOK And vbYes=0=False=Not True

So, if True=Good and False=Bad:
Sleep=Not good

I'd use the timer control whenever feasible, and this seems feasible, but (from help):

The maximum, 65,535 milliseconds, is equivalent to just over 1 minute.

To go more than one minute, you'll probably want a counter, something like this:

' Module-level variable
Private m_intMinuteCounter as integer

Private Sub Form_Load()
  ' or move this to wherever you enable the timer
  m_intMinuteCounter = 0
End Sub

Private Sub Timer1_Timer()
  m_intMinuteCounter = m_intMinuteCounter + 1
  if m_intMinuteCounter >= 10 then
    Timer1.Enabled = False
    PerformDesiredTask' 10 minutes has elapsed
  end if
End Sub

Expert Comment

ID: 6913296
If you want to use a timer other than VBs timer you can use the two APIs SetTimer, KillTimer. Use of these two API's will not inccur any processing by your program as the Timer Fire event is a call back procedure.


Featured Post

Active Directory Webinar

We all know we need to protect and secure our privileges, but where to start? Join Experts Exchange and ManageEngine on Tuesday, April 11, 2017 10:00 AM PDT to learn how to track and secure privileged users in Active Directory.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Passing a Text Box name to a Sub 6 99
Help with retrieving partial value from a column using VB.NET 4 51
Export Data to Different .csv Files 26 115
Problem to line 23 55
There are many ways to remove duplicate entries in an SQL or Access database. Most make you temporarily insert an ID field, make a temp table and copy data back and forth, and/or are slow. Here is an easy way in VB6 using ADO to remove duplicate row…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question