in reply to Sharing Tk-module objects in threads
#!/usr/bin/perl use strict; use Tk; use threads; use threads::shared; my $data_out:shared = 0; my $data_in:shared = 0; threads->new( \&update_thread )->detach; create_tk_window(); ######################################################### sub update_thread { print "update_thread called...\n"; while (1) { $data_in = 'thread-processing'.$data_out; sleep 1; } exit(); } sub create_tk_window { my $mw = MainWindow->new( -background => '#dedede', -foreground => 'yellow', -title => "FingerLick" ); $mw->geometry("802x618"); $mw->minsize( 802, 618 ); $mw->maxsize( 802, 618 ); my $sent_recvd_listbox = $mw->Scrolled('Listbox', -height => 20, -width => 60, -background => 'black', -foreground => 'yellow' )->pack( -side => 'bottom', -anchor => 's', -pady => 2 ); my $server_list_listbox = $mw->Scrolled( "Listbox", -height => 20, -width => 60, -background => 'white', -foreground => 'black', -scrollbars => 'se', )->pack(); $mw->repeat(1000, sub{ $data_out++; $server_list_listbox->insert( 'end', "Sent $data_out " ); $server_list_listbox->see('end'); $sent_recvd_listbox->insert( 'end', "Recived $data_in" ); $sent_recvd_listbox->see('end'); }); MainLoop; }
|
|---|