I know you're asking about threads, but from what I've experienced and researched so far on win32 and NT is that its easiest maybe to use
fork. From what I can tell,
fork on win32 is like a hybrid between a true
fork and a thread. It doesn't create a new seperate process as seen by the task manager, but it also does not have access to global variables in the parent like a thread should.
My example shows how to use fork together with Tk to get web pages but not interfere with the gui. The child just sits there waiting for urls to get. You will have to add proxy support if you're behind a firewall though.
Oh, also, you want to make sure you download the right version of perl that supports fork. You can get this from active state at
here
#!/usr/local/bin/perl
use POSIX;
use Tk;
use LWP::UserAgent;
use URI::URL;
pipe(FROM_P, TO_C) or die "pipe: $!";
select(((select(TO_C), $| = 1))[0]);
my $ua = LWP::UserAgent->new;
if (!($pid = fork))
{
close(TO_C);
while($line = <FROM_P>) {
print "Child Pid $$ just read this: $line\n";
chomp($line);
$url = $line;
$file = 'yahoo.txt';
my $req = HTTP::Request->new(GET => $url);
$req->header('Accept' => 'text/html');
$res = $ua->request($req, $file);
};
}
my $mw = MainWindow->new();
$button = $mw->Button(-text => "click here to download yahoo web page"
+, -activebackground => 'red',
-command => \&printit)->pack();
print "i'm the parent about to mainloop\n";
MainLoop;
sub printit {
print TO_C "http:\/\/www\.yahoo\.com\n";
}
Justin Eltoft
"If at all god's gaze upon us falls, its with a mischievous grin, look at him" -- Dave Matthews
In reply to Re: Threads
by Eradicatore
in thread Threads
by PH
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.