gpt4 book ai didi

java - 即使启动新线程,SWT UI 也会挂起

转载 作者:行者123 更新时间:2023-12-01 07:29:47 26 4
gpt4 key购买 nike

我正在使用 Display.getDefault().asyncExec() 启动一个新线程。该线程执行以下操作:

public void run()
{
while (! condition)
{
//do some processing
mainWindow.updateStatus(..); //this will call a setText method on a label in
//the original thread
}
}

但是,当我运行此线程时,程序会挂起,而不是在标签中顺利显示状态。我做错了什么?

最佳答案

你误解了线程的概念。您所说的线程实际上只是您安排在(UI)线程上执行的一段代码。

通常,UI 线程上的代码应该快速执行并尽快返回。您的 while 循环很可能违反了此规则。解决方案是将循环从 UI 线程(即 run 方法)中取出,并将其放在 Display.asyncExec() 调用周围。

关于java - 即使启动新线程,SWT UI 也会挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19045109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com