#!perl use Data::Dump qw[ pp ]; use threads; use Win32::GUI qw( WM_CLOSE WM_TIMER ); #$CHILD = threads->create('child', ''); $WinMain = Win32::GUI::Window->new( -name => 'Main', -text => 'Task Test', -width => 300, -height => 200, -onTerminate => \&Main_Terminate, -onTimer => \&DoTimer, ); my $timer1 = $WinMain->AddTimer( 'Timer1', 10000 ); pp $timer1; my $timer2 = $WinMain->AddTimer( 'Timer2', 20000 ); pp $timer2; $WinMain->Show(); Win32::GUI::Dialog(); $CHILD->detach(); sub Main_Terminate { -1; } sub child { while( sleep 1 ) { Win32::GUI::PostMessage( $WinMain, WM_TIMER, 1, 'Timer1' ); } } sub DoTimer { pp \@_; print "Timer fired\n"; return 1; }