Click here to Skip to main content
15,917,610 members
Home / Discussions / C#
   

C#

 
GeneralRe: how to pass a handler to another form Pin
Blue_Boy1-Sep-10 22:59
Blue_Boy1-Sep-10 22:59 
GeneralRe: how to pass a handler to another form Pin
Richard MacCutchan1-Sep-10 23:23
mveRichard MacCutchan1-Sep-10 23:23 
GeneralRe: how to pass a handler to another form Pin
zhiyuan162-Sep-10 3:34
zhiyuan162-Sep-10 3:34 
GeneralRe: how to pass a handler to another form Pin
Richard MacCutchan2-Sep-10 4:09
mveRichard MacCutchan2-Sep-10 4:09 
GeneralRe: how to pass a handler to another form Pin
DaveyM691-Sep-10 23:58
professionalDaveyM691-Sep-10 23:58 
QuestionHow do i Test Automate Datagrid View Pin
arun_pk1-Sep-10 20:01
arun_pk1-Sep-10 20:01 
AnswerRe: How do i Test Automate Datagrid View Pin
Henry Minute2-Sep-10 3:46
Henry Minute2-Sep-10 3:46 
QuestionInplement a precise timer Pin
cateyes991-Sep-10 13:50
cateyes991-Sep-10 13:50 
AnswerRe: Inplement a precise timer Pin
Luc Pattyn1-Sep-10 14:32
sitebuilderLuc Pattyn1-Sep-10 14:32 
GeneralRe: Inplement a precise timer Pin
cateyes992-Sep-10 12:19
cateyes992-Sep-10 12:19 
AnswerRe: Inplement a precise timer Pin
Ritesh Ramesh1-Sep-10 15:22
Ritesh Ramesh1-Sep-10 15:22 
AnswerRe: Inplement a precise timer Pin
PIEBALDconsult1-Sep-10 15:28
mvePIEBALDconsult1-Sep-10 15:28 
GeneralRe: Inplement a precise timer Pin
Luc Pattyn1-Sep-10 15:52
sitebuilderLuc Pattyn1-Sep-10 15:52 
GeneralRe: Inplement a precise timer Pin
PIEBALDconsult1-Sep-10 16:47
mvePIEBALDconsult1-Sep-10 16:47 
JokeRe: Inplement a precise timer Pin
Keith Barrow1-Sep-10 21:04
professionalKeith Barrow1-Sep-10 21:04 
GeneralRe: Inplement a precise timer Pin
OriginalGriff1-Sep-10 21:45
mveOriginalGriff1-Sep-10 21:45 
AnswerRe: Inplement a precise timer Pin
Garth J Lancaster1-Sep-10 17:45
professionalGarth J Lancaster1-Sep-10 17:45 
GeneralRe: Inplement a precise timer Pin
cateyes992-Sep-10 12:28
cateyes992-Sep-10 12:28 
AnswerRe: Inplement a precise timer Pin
Pete O'Hanlon1-Sep-10 22:30
mvePete O'Hanlon1-Sep-10 22:30 
Don't use a timer for this - take a look, rather, at using something like a Monitor where you can specify an elapsed interval before the monitor "wakes up". It would look something like this:
private static readonly object _syncLock = new object();
private bool _cancel;
private void ScheduleProcess(DateTime scheduledDate)
{
  if (scheduledDate >= DateTime.Now)
    throw new ArgumentOutOfRangeException("The scheduled time is set for a time that has already passed.");
  TimeSpan waittime = scheduledDate - DateTime.Now;
  lock (_syncLock)
  {
    Monitor.Wait(_syncLock, waittime);
  }
}

public void Cancel()
{
  _cancel = true;
  lock(_syncLock)
  {
    Monitor.PulseAll(_syncLock);
  }
}
Create a background thread, and use ScheduleProcess to block access to your functionality until the time has passed. For instance:
C#
public void DoSomething(DateTime scheduledTime)
{
  SmartThreadPool stp = new SmartThreadPool();
  stp.QueueWorkItem(new WorkItemCallback(RunProcess), scheduledTime);
}

private object RunProcess(object scheduledTime)
{
  ScheduleProcess((DateTime)scheduledTime);
  if (!_cancel)
  {
    // Run my process
  }

  return null;
}
This example uses the SmartThreadPool[^].

I have CDO, it's OCD with the letters in the right order; just as they ruddy well should be

Forgive your enemies - it messes with their heads


My blog | My articles | MoXAML PowerToys | Onyx


GeneralRe: Inplement a precise timer Pin
Tom Foswick2-Sep-10 5:55
Tom Foswick2-Sep-10 5:55 
GeneralRe: Inplement a precise timer Pin
cateyes992-Sep-10 11:50
cateyes992-Sep-10 11:50 
GeneralRe: Inplement a precise timer Pin
cateyes992-Sep-10 11:48
cateyes992-Sep-10 11:48 
AnswerRe: Inplement a precise timer Pin
roman4002-Sep-10 1:31
roman4002-Sep-10 1:31 
GeneralRe: Inplement a precise timer Pin
cateyes992-Sep-10 11:51
cateyes992-Sep-10 11:51 
AnswerRe: Inplement a precise timer Pin
englebart2-Sep-10 2:07
professionalenglebart2-Sep-10 2:07 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.