スレッド (Perl 5.16) と組み合わせて Win32-GUI をいじってみたところ、よくわからない警告とエラーがいくつか出てきました。
コードは次のとおりです。
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 で 2a1718 ではなく間違ったプール 35bcd90 に解放されます。グローバルな破棄中に、C:/Perl/site/lib/Win32/GUI.pm 行 3480 で 2a1718 ではなく間違ったプール 35bcd90 に解放されます。リークされたスカラー: 1
この「スカラーがリークした」問題に関するいくつかのトピックを見つけましたが、残念ながら機能している解決策ではありません。
何か考えはありますか?
ありがとう、
最大。