Schrift
[thread]6868[/thread]

shared vars (Seite 2)

Leser: 2


<< |< 1 2 >| >> 20 Einträge, 2 Seiten
Froschpopo
 2005-04-08 01:30
#53567 #53567
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
hm kann das sein, dass der thread ne gewisse zeit braucht bis er die variable geändert hat ? ...
esskar
 2005-04-08 01:37
#53568 #53568
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=Froschpopo,07.04.2005, 23:30]hm kann das sein, dass der thread ne gewisse zeit braucht bis er die variable geändert hat ? ...[/quote]
bingo. war doch gar nicht so schwer.
es dauert ja auch ein wenig, bis der thread wirklich erzeugt ist, usw. ...
Froschpopo
 2005-04-08 01:40
#53569 #53569
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
na geilo dann kann ich das ja bei Tk vergessen...
ich hatte vor, in dem thread an einer Socketverbindung zu lauschen und dann aus dem thread heraus eine Statusanzeige die in Tk gebaut ist zu beeinflussen.
esskar
 2005-04-08 02:04
#53570 #53570
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
mach doch...
ist doch kein problem!
Froschpopo
 2005-04-08 02:11
#53571 #53571
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
hm ok, dann muss ich halt den thread erst am ende des Scriptes, also kurz vor MainLoop aufrufen... ich teste das mal und melde mich gleich nochmal.
esskar
 2005-04-08 02:18
#53572 #53572
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
wenn du nicht so egoistisch wärst, würdest du ja deinen code posten; dann könnte man dir besser helfen...
aber egal, du lernst es auch noch!
Froschpopo
 2005-04-08 02:41
#53573 #53573
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
my $th_inc = threads->new( \&kind );


my $toplevel = $config{MainWindow}->Toplevel();
share($toplevel);

sub kind {
$toplevel->configure(
-text => "Hier ist der Titel"
);
return 0;
}

MainLoop();


und dazu sagt er mir:
Code: (dl )
1
2
3
4
5
6
thread failed to start: Can't call method "configure" on an undefined value at t
est.pl line 877.
Tk::Error: Invalid value for shared scalar at C:/Perl/site/lib/Tk/After.pm line
87.
[once,[{},after#49,idle,once,[ConfigChanged,{},{}]]]
("after" script)

aber so stehts auch in der perldoc
esskar
 2005-04-08 02:48
#53574 #53574
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
andersrum

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
my $toplevel = $config{MainWindow}->Toplevel();
share($toplevel);

my $th_inc = threads->new( \&kind );

sub kind {
$toplevel->configure(
-text => "Hier ist der Titel"
);
return 0;
}

MainLoop();
Froschpopo
 2005-04-08 02:51
#53575 #53575
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
warte das beispiel is blödsinn, ich mach dir ein neues\n\n

<!--EDIT|Froschpopo|1112914585-->
Froschpopo
 2005-04-08 02:59
#53576 #53576
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/perl

use warnings;
use strict;

use Tk;
use threads;
use threads::shared;

my $main = MainWindow->new();
share($main);

my $th_inc = threads->new( \&kind );

sub kind {
$main->configure(
-title => "Hier ist der Titel"
);
return 0;
}

MainLoop();


sag mir dann:

Code: (dl )
1
2
3
4
5
6
Tk::Error: Invalid value for shared scalar at C:/Perl/site/lib/Tk/After.pm line
87.
thread failed to start: Invalid value for shared scalar at C:/Perl/site/lib/Tk/W
idget.pm line 390.
[once,[{},after#0,idle,once,[ConfigChanged,{},{}]]]
("after" script)
<< |< 1 2 >| >> 20 Einträge, 2 Seiten



View all threads created 2005-04-07 23:45.