如果主线程在后台加载一堆数据并最终将其加载到主Dialog
上,我如何在前台有一个ProgressIndicator
不确定的Scene
。目前,当程序加载时,页面是白色的,没有响应,只是看起来很糟糕。此外,这是最好的方法,还是有更好的方法。
答案 0 :(得分:0)
您的窗口被冻结/无响应,因为您正在主线程中加载此数据(这是JavaFX用于渲染窗口的线程)。
您需要做的是在一个单独的线程中执行加载,该线程将与主线程并行运行。加载完成后,该线程将通知主线程并传递加载的数据供您渲染。
以下是创建加载数据的新线程的快捷方法:
ProgressIndicator
如果您使用此功能,您的不确定 $str = '<select name="options[45]" id="select_45" class=" required-entry product-custom-option" title="" onchange="opConfig.reloadPrice()">
<option value="" >-- Please Select --</option>
<option value="76" price="0" >Certified Networking </option>
<option value="89" price="0" >Certified Virtualization </option>
<option value="90" price="0" >Certified Expert Virtualization </option>
<option value="91" price="0" >Certified Mobility </option>
<option value="92" price="0" >Certified Professional Networking </option>
<option value="93" price="0" >Certified Professional Virtualization
</option>
</select>';
$array = array('-- Please Select --','Certified Networking', 'Certified Mobility');
$strToArray = explode("</option>",$str);
foreach ($strToArray as $stringOption) {
foreach ($array as $string) {
if (strpos($stringOption,$string)) {
echo $stringOption ;
}
}
}
将不会受到影响。
有很多方法可以“通知主线程”。您也许可以将主类的实例传递给辅助线程,当数据完成加载时,您只需在该实例上调用一个方法。