I have problems with timer. I have function in function (draw in func)
void func(){
/*...do something ... */
for(){
for() {
/*loop*/
draw(A,B, Pen);
}
/*... do something ...*/
}
}
This is draw function
public void draw1(Point Poc, Point Kra, Pen o) {
Graphics g = this.CreateGraphics();
g.DrawLine(o,Poc.X+4, Poc.Y+4,Kra.X+4, Kra.Y+4);
g.Dispose();
}
I call function 'func' on button click
private void button4_Click(object sender, EventArgs e){
func();
}
I want to call draw function evry second (draw the line every second). Between drawings, function needs to continue working and calculate = loop, and draw next line for some time(interval). I tried with
timer1.Tick += new EventHandler(timer1_Tick);
etc..
private void timer1_Tick(object sender, EventArgs e)
{
...
draw(A, B, Pen)
}
etc..
but all that stops my function, and draw one random line. I just want the time(interval) between two drawings in function 'func'. Without timer works fine, but draw all lines immediately, I need slow drawing. Cheers.
I'm not entirely clear on what you're trying to do, but, in general, you can use an object of the Timer class to specify code to be executed on a specified interval. The code would look something like this:
Timer myTimer = new Timer();
myTimer.Elapsed += new ElapsedEventHandler(DisplayTimeEvent);
myTimer.Interval = 1000; // 1000 ms is one second
myTimer.Start();
public static void DisplayTimeEvent(object source, ElapsedEventArgs e)
{
// code here will run every second
}
try this
var aTimer = new System.Timers.Timer(1000);
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval = 1000;
aTimer.Enabled = true;
//if your code is not registers timer globally then uncomment following code
//GC.KeepAlive(aTimer);
private void OnTimedEvent(object source, ElapsedEventArgs e)
{
draw(A, B, Pen);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With