gpt4 book ai didi

java - C# 和 Java 中的 GUI 组件是否分别由单独的线程运行?

转载 作者:行者123 更新时间:2023-12-02 02:42:57 32 4
gpt4 key购买 nike

我想知道 C# 和 Java 中的 GUI 组件是如何在幕后工作的。对我来说,似乎每个组件都需要有自己的线程来监听它。例如,如果您有 Frame、ButtonA 和 ButtonB,是否有三个单独的线程在监听它们中的每一个?就像有一个 Frame 线程在 Frame 上监听,一个 ButtonA 线程在 ButtonA 上监听,第三个线程在 ButtonB 上监听?否则怎么能同时听到他们的声音呢?我还想知道在 Visual Studio 中使用 GUI 设计器是否是不好的做法。使用GUI设计器工具是否不专业,我应该从头开始学习编写GUI吗?我应该知道如何用 C# 编写 GUI 代码吗?我已经非常了解 Java 中的 Swing。

谢谢!

最佳答案

我不了解 C#,但 AWT、Swing 和 JavaFX 与当今大多数 GUI 解决方案一样都是单线程的。 Swing 中的主线程例如称为事件调度线程,它的名字几乎可以告诉你它的作用。它基本上从事件队列中提取并将它们分派(dispatch)到相应的监听器组件。例如。如果单击按钮,操作系统将生成一个事件,该事件将被排入事件调度线程的队列中。然后,事件调度线程将拉取事件,确定需要通知哪些组件(例如通过检查单击的坐标)并调用组件上相应的方法。

您可以在此处找到有关 Swing 中线程的更多信息:http://docs.oracle.com/javase/tutorial/uiswing/concurrency/

上述方法或多或少适用于大多数 GUI 框架。

关于java - C# 和 Java 中的 GUI 组件是否分别由单独的线程运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45116139/

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