2023-02-15 295
我已经写了一个简单的Javafx应用程序,该应用程序启动了一个新线程,并且可以从NetBeans开始使用.
但是我在编译过程中遵循警告:
explicit use of threads is not supported
这是否意味着现在可能在所有可能的设备(例如手机或浏览器)中工作?
javafx本身必须在主Javafx线程上运行,因此目前不支持直接从Javafx启动线程.但是,您可以创建一个产生线程的Java类.因此,您的Javafx类调用Java类,然后启动线程.
从Java线程回到Javafx,您需要在主Javafx线程上.如何做到这一点的示例是:
import com.sun.javafx.runtime.Entry;
Entry.deferAction( new Runnable() {
@Override
public void run() {
fxListener.onMessage(copy);
}
} );
您不应直接从Java操纵Javafx对象.如果您从Java进行此操作,则需要使用Javafx.Reflect类.
我必须推荐Jfxtras( http://jfxtras.org/)XWorker类.从本质上讲,这是您提到的问题的解决方法,即您可以在背景线程中使用Javafx代码.它适用于大多数任务,但是它也有点危险,因为您可以轻松地创建与此无线安全的代码.
请参阅: http://jfxtras.googlecode.com/svn/site/javadoc/release-0.6/org.jfxtras.async/org.jfxtras.jfxtras.ashnc.xworker.xworker.xworker.html
基本用法:
var currentImage:Image;
var worker = XWorker {
inBackground: function() {
return Image {url: currentFile.toURL().toString(), height: imageHeight};
}
onDone: function(result) {
currentImage = result as Image;
}
}
在背景秋千线程中完成了内置内完成的所有操作.该线程可以返回结果,该结果将传递给OnDone. OnDone在Javafx事件dispatch线程(所有其他Javafx代码都运行的主线程)中执行,因此您可以返回正常使用情况.将其视为前景.在大多数情况下,您不想访问也可以在”前景”中同时访问的任何返回地.只要线程之间共享的对象是线程安全的,您就可以对此规则进行例外.在大多数情况下,Javafx代码不能安全,但是您可以使用Java线程安全对象(例如JPA EntityManager工厂)或诸如BlockingQueue之类的容器.后者对于制作/消费者模型可能很有用.
另外,如果您的运行时间很长,并且要定期将更新发送到”前景”,则可以使用发布/流程.这是一个例子:
var worker = XWorker {
inBackground: function() {
while (true) {
// Do something
publish(someStuff);
}
}
process: function(someStuff: SomeStuff[]):Void {
// Do something with some stuff. You are now in
// "the foreground", so you can freely access
// JavaFX objects.
}
onDone: function(result) {
currentImage = result as Image;
}
}
这对于从某种UI显示的背景线程发送诸如日志消息之类的内容很有用.
以上所述是小编给大家介绍的Javafx支持启动自己的线程吗?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/33784.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态