I have problems with timer. I have function in function (draw in func)
void func(){
/*...do something ... */
for(){
for() {
/*loop*/
draw(A,B, Pen);
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);
}
SOLVED for now with
System.Threading.Thread.Sleep(700);
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
}
You don't draw in a WinForms app, you respond to update or paint messages. Do what you want to do in the form's Paint
event (or override the OnPaint
method). When you want the form to be re-drawn, use Form.Invalidate
. e.g. call Form.Invalidate
in the timer tick...