使用线程和 Perl TK 隐藏分段错误 Perl 5.8.8



我用Perl TK和Threads编写了一个GUI。 在程序退出之前,一切都运行良好。 这时我得到了一个分段错误。 我相信我正在尽我所能管理我的线程,并且分段错误只是由于 Perl 版本 5.8.8 中的线程造成的。 我知道这个版本很旧,但由于工作原因我无法更新。 所以,我的问题是,我可以以某种方式简单地隐藏分段错误吗? 或者,有没有一种万无一失的方法可以完全清理线程? 由于问题的性质,我认为我的代码无关紧要,但这是我结束线程的方式:

my $thr = threads->create(&worker);  ##this is created before any TK objects
sub worker {
 while($run){
  ##do thready-stuff here
 }
}
sub OnExit {
 $run=0;
 exit 0;
} 

其中$run是共享变量,&OnExit 绑定到正在关闭的窗口。 如果我删除 $run=0,我会收到有关在运行其他线程的情况下退出程序的错误,所以我很确定这正在结束它。 同样,我相信我的错误是由于版本限制造成的,所以我只想隐藏它。 谢谢!

请参阅抑制/静音窗口崩溃消息框并添加use Win32API::File(); Win32API::File::SetErrorMode(2);

这是一个 PERL

问题,即使您$thread>分离,并且线程正常退出,您仍然会在 PERL/Windows 版本的某些组合中收到此错误。

没什么好担心的,只是隐藏它。

最新更新