Je vois parfois une "congélation" momentanée (une fois sur cinq), momentanée (5-10 secondes), lorsqu'elle fait glisser — éventuellement dans le cadre du rappel -startcommand
. Cela n'arrive jamais à la première traînée.Comment puis-je savoir pourquoi mon action glisser se bloque momentanément en Perl/Tk?
Le rappel est assez simple; il définit simplement le texte du glisser le curseur sur la valeur qui est déplacée:
sub DragStart {
my($token) = @_;
my $w = $token->parent;
my $e = $w->XEvent;
my $idx = $w->nearest($e->y);
if(defined $idx) {
$token->configure(-text -> $w->get($idx);
my($X, $Y) = ($e->x, $e->y);
$token->MoveToplevelWindow($X, $Y);
$token->raise;
$token->deiconify;
$token->FindSite($X, $Y, $e);
}
}
Je ne peux pas empêcher de se demander si le problème est en dehors de mon code, donc ce que je voudrais faire est de trouver un moyen d'identifier quel sous-programme est actuellement appelé lorsque le gel se produit.
Existe-t-il un tel outil? Quelque chose qui montre une pile d'appels en temps réel le ferait, s'il y en a un.
Devel :: ptkdb est exactement ce que je cherchais. Je vous remercie. – Trueblood