0
Qt :: Object라는 클래스가 있으며 스레드를 만드는 메서드가 있습니다.Perl Qt 3.1 및 스레드
스레드를 분리하거나 결합하려고 할 때마다 오류가 발생합니다.
또한 방출 신호가 작동하지 않습니다.
샘플 코드입니다 : 내가 얻을
package MyThread;
use threads;
use Qt;
use Qt::isa qw(Qt::Object);
use Qt::signals
imageResRecieved => ['int', 'int'];
sub NEW
{
shift->SUPER::NEW(@_[0..2]);
if (name() eq "unnamed") {
setName("MyThread");
}
}
sub getWidthHeight{
my ($seq, $frameNum) = @_;
my ($width, $height) = (1920, 1080);
sleep(2);
print "Emitting\n";
emit imageResRecieved($width, $height);
print "AFTER Emit\n";
}
sub getImageWidthThread{
my $thr = threads->create('getWidthHeight', @_);
$thr->detach(); # This causes seg faults
}
use MyThread;
use Qt::slots
handleImageResSignal => ['int', 'int'];
my $mythread = MyThread();
Qt::Object::connect($irt, SIGNAL "imageResRecieved(int, int)", this, SLOT "handleImageResSignal(int, int)");
$mythread->getImageWidthThread("$GLOBAL{DIR}/$GLOBAL{PAT}", $seq_start);
sub handleImageResSignal{
my ($width, $height) = @_;
print "\n Emitted ${width} ${height} \n";
}
오류는 같은 수 있습니다 : '39631808'을 존재하지 않는 공유 문자열을 해제 할 수
시도, 펄 인터프리터 : 0x2879910.
[1] 분할 오류