我只是将 Win32-GUI 与线程(Perl 5.16)结合使用,我想出了一些我不太理解的警告和错误。
代码如下:
use strict;
use warnings;
use Win32::GUI();
use threads;
my $main = Win32::GUI::Window->new(
-name => 'main',
-title => 'Multithreaded Test',
-size => [300,100],
);
my $button1 = $main->AddButton(
-name => 'button1',
-text => 'Click me',
-pos => [10,10],
-width => 120,
);
sub button1_Click {
my $thread1 = threads->create(\&do_something);
$thread1->join();
}
sub do_something {
sleep(1);
}
$main->Center();
$main->Show();
Win32::GUI::Dialog();
当我单击按钮并在 1 秒后加入线程时,我得到以下控制台输出:
在全局销毁期间,可在 C:/Perl/site/lib/Win32/GUI.pm 第 3480 行对错误池 35bcd90 而不是 2a1718 进行释放。在全局销毁期间,可在 C:/Perl/site/lib/Win32/GUI.pm 第 3480 行对错误池 35bcd90 而不是 2a1718 进行释放。标量泄露:1
我发现了几个关于这个“标量泄露”问题的主题,但遗憾的是不是一个有效的解决方案。
你有什么主意吗?
谢谢,
最大限度。