求助:主界面假死如何解决
时间:2011-07-21
来源:互联网
#! /usr/bin/perl5 -w
use strict;
use Tk;
use Encode;
use Encode::CN;
my $main = new MainWindow;
$main->Label(-text => decode("gb2312", "请输入循环次数"))->pack;
my $number = $main->Entry(-width => 10);
$number->pack;
my $text_val;
my $count = $main->Label(-text => decode("gb2312", "此处显示循环次数"))->pack;
$main->Button(-text => decode("gb2312", "开始计数"),
-command => sub{do_count($number, $count)}
)->pack;
MainLoop;
sub do_count {
my ($number, $count) = @_;
my $num_val = $number->get;
for ($text_val=0;$text_val<$num_val ;$text_val++) {
$count->configure(-textvariable => \$text_val);
}
}
输入的循环次数越大,假死时间越长,也就是FOR循环结束后,主界面才能恢复,该如何解决呢,开多线程?可是用TK模块的时候怎么开多线程呢?
use strict;
use Tk;
use Encode;
use Encode::CN;
my $main = new MainWindow;
$main->Label(-text => decode("gb2312", "请输入循环次数"))->pack;
my $number = $main->Entry(-width => 10);
$number->pack;
my $text_val;
my $count = $main->Label(-text => decode("gb2312", "此处显示循环次数"))->pack;
$main->Button(-text => decode("gb2312", "开始计数"),
-command => sub{do_count($number, $count)}
)->pack;
MainLoop;
sub do_count {
my ($number, $count) = @_;
my $num_val = $number->get;
for ($text_val=0;$text_val<$num_val ;$text_val++) {
$count->configure(-textvariable => \$text_val);
}
}
输入的循环次数越大,假死时间越长,也就是FOR循环结束后,主界面才能恢复,该如何解决呢,开多线程?可是用TK模块的时候怎么开多线程呢?
作者: yuyuau 发布时间: 2011-07-21

作者: yuyuau 发布时间: 2011-07-21
QUOTE:
难道没有办法解决这个问题么?
yuyuau 发表于 2011-07-21 11:51
yuyuau 发表于 2011-07-21 11:51
用 threads 开个线程来干活
作者: zhlong8 发布时间: 2011-07-21
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28