Perl Tk 在后台重复而不冻结应用程序
我有使用中继器的Perl TK应用程序(MW->重复)。
中继器正在调用一个函数,可以刷新GUI内部的一些TK对象。
此中继器功能需要一些时间来执行 - 因此将应用程序冻结了几秒钟。我还在哈希内部存储对象,因此我正在尝试在中继器中配置“复杂”数据结构。
我一直在寻找一种在后台执行此功能的方法(可能是线程?),但不幸的是我无法做到。
我知道我需要使用线程::共享。但是,当我试图将对象分配到哈希中时,它不会让我说“共享标量的无效价值”。
我尝试过的一个实验之一:
#main
our %hash :shared;
my %p,%p2;
$hash{$key} = \%p;
$hash{$key}{$key2} = \%p2;
$hash{$key}{$key2} = Button(...)
#inside the repeater - with threads
$hash{$key}{$key2}->configure(-text => "foo");
我在这里想念什么?
谢谢。
I have Perl Tk application which uses a repeater (mw->repeat).
The repeater is calling a function which refreshes some Tk objects inside the GUI.
This repeater function is taking some time to execute - hence it freezes the application for several seconds. I'm also storing objects inside hashes and therefore I'm trying to configure "complex" data structures inside the repeater.
I've been looking for a way to execute this function on the background (possibly thread?) but unfortunately I could not make it.
I understand that I need to use threads::shared. However, when I'm trying to assign the objects into the hash it won't let me, saying "Invalid value for shared scalar".
One of the experiments I've tried:
#main
our %hash :shared;
my %p,%p2;
$hash{$key} = \%p;
$hash{$key}{$key2} = \%p2;
$hash{$key}{$key2} = Button(...)
#inside the repeater - with threads
$hash{$key}{$key2}->configure(-text => "foo");
What do I miss here?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论