GUI冻结-Perl-Tk
我使用Perl/Tk开发了一个小应用程序。当按下应用程序中的一个按钮时,应用程序将从web获取数据。但问题是GUI在返回控件之前会挂起。我知道这是由于延迟,所以主窗口没有响应。我使用了update()函数,但问题仍然存在。所以我搜索了一下,知道我们可以用线程来解决这个问题。但我不知道如何在Perl/Tk中使用线程。这是我的示例代码GUI冻结-Perl-Tk,perl,perltk,Perl,Perltk,我使用Perl/Tk开发了一个小应用程序。当按下应用程序中的一个按钮时,应用程序将从web获取数据。但问题是GUI在返回控件之前会挂起。我知道这是由于延迟,所以主窗口没有响应。我使用了update()函数,但问题仍然存在。所以我搜索了一下,知道我们可以用线程来解决这个问题。但我不知道如何在Perl/Tk中使用线程。这是我的示例代码 use warnings; use Tk; my $mw = new MainWindow; my $button = $mw -> Button(-tex
use warnings;
use Tk;
my $mw = new MainWindow;
my $button = $mw -> Button(-text => "Fetch",
-command => \&FetchData)
-> pack();
MainLoop;
sub FetchData
{
//Fetching data from Web
}
提前感谢。我从未尝试过这个,但这可能会帮助你开始。感谢链接,但他们没有提到在单击按钮时调用线程,所以你能告诉我怎么做吗?从链接中得到线索。Thanks@Winbros-好的,在关于PerlMonks的讨论中,一个叫zentara的家伙说:“线程必须在调用任何Tk小部件之前创建。你在按钮回调中创建线程违反了这一规则。”所以看起来你必须在之前创建线程,然后通过共享变量进行通信。至少这是zentara的建议。