1
我開發了一個使用Perl/Tk的小應用程序。當應用程序中的其中一個按鈕被按下時,應用程序將從網絡獲取數據。但問題在於GUI在控制返回之前會變得懸而未決。我知道這是由於延遲導致主窗口無響應。我使用了update()函數,但問題仍然存在。所以我谷歌周圍,並知道我們可以使用線程來克服這個問題。但我不確定如何在Perl/Tk中使用線程。這裏是我的示例代碼GUI凍結 - Perl Tk
use warnings;
use Tk;
my $mw = new MainWindow;
my $button = $mw -> Button(-text => "Fetch",
-command => \&FetchData)
-> pack();
MainLoop;
sub FetchData
{
//Fetching data from Web
}
在此先感謝。
感謝您的鏈接,但無處可談,因爲他們在點擊按鈕時討論調用線程,所以請您告訴我該怎麼做? – Allwyn 2011-05-13 15:32:41
從鏈接中得知線索。謝謝 – Allwyn 2011-05-13 16:56:09
@Winbros - 那麼,在關於PerlMonks的討論中,一個名爲zentara的人說:「線程必須在任何Tk小部件被調用之前創建,通過在按鈕回調中創建線程來違反該規則。所以看起來你必須在之前創建線程,然後通過共享變量進行通信。至少這是zentara的建議。 – Lumi 2011-05-13 19:20:17