当Windows中的活动窗口最小化时,为什么(Java)程序在一个函数中失败?

时间:2014-11-08 13:27:36

标签: java windows

我使用的基于Java的商业程序存在令人讨厌的问题。

该计划是一个交易工作站(TWS,Interactive Brokers)。当我将程序窗口最小化到Windows(7)任务栏时,应用程序不再向我编写的自定义应用程序(已编译的C ++)传输信息,该应用程序通过套接字与(TWS)连接。最小化后,TWS程序不会崩溃,当我恢复窗口时,我的应用程序的数据源会恢复。

问题不是间歇性的 - 数据馈送在窗口最小化的瞬间停止,并且每次恢复它恢复的瞬间。我可以专注于其他窗口,而不是丢失饲料 - 它是特定于最小化。我的应用程序没有"断开"使用交易平台 - 该应用程序生成与市场数据输入丢失相关的错误消息,但从未声称会断开连接,这会立即知道。

我已经通过程序TWS中的每个配置。我也曾与IB交谈,令人惊讶的是,那里的人无法帮助我。我用谷歌搜索了这个问题的搜索条件,我找到了一个在iTunes窗口最小化时跳过iTunes播放问题的人。

我可以在这里尝试CPU / OS或Java级别的设置吗?

我的电脑功能强大且具有四核CPU,因此Affinity似乎无关紧要/帮助。

1 个答案:

答案 0 :(得分:0)

不是答案,但可能有用

void importantFoo() {
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            ..... // do stuff
            System.out.println(((java.awt.Window) myWindowOrFrame).getOwnedWindows()[0].isFocused() ? "" : "window focus lost...");
        }
    });
}