Multithreading Xlib:应答类型0x2中的序列丢失

Multithreading Xlib:应答类型0x2中的序列丢失,multithreading,xlib,motif,Multithreading,Xlib,Motif,在我维护的一个程序中,发生了以下错误Xlib:sequence在回复类型0x2中丢失,我不是最初的开发人员 我远不是Xlib编程方面的专家,我在标签中包含motif只是因为这个程序是使用该工具包编写的。 我在发布之前做了一些研究,发现这个错误可能是由于一个线程与试图更新UI本身的UI线程不同。在代码中搜索时,我发现了一些对XTestFakeKeyEvent和XtIsManaged的调用,我确信这些调用是在与UI不同的线程中使用的 我的问题是:这两个函数会导致这个错误吗 我认为只有更新GUI的功能

在我维护的一个程序中,发生了以下错误Xlib:sequence在回复类型0x2中丢失,我不是最初的开发人员

我远不是Xlib编程方面的专家,我在标签中包含motif只是因为这个程序是使用该工具包编写的。 我在发布之前做了一些研究,发现这个错误可能是由于一个线程与试图更新UI本身的UI线程不同。在代码中搜索时,我发现了一些对XTestFakeKeyEvent和XtIsManaged的调用,我确信这些调用是在与UI不同的线程中使用的

我的问题是:这两个函数会导致这个错误吗


我认为只有更新GUI的功能(例如设置标签文本)才会导致此类问题,而这两个功能似乎不会直接影响GUI,但我真的不知道……

XTestFakeKeyEvent最有可能是罪魁祸首。它注入一个按键按下/释放事件,这可能会打乱事件队列


XtIsManaged不会导致更改,但如果在执行过程中更改了托管状态,则可能会给出错误的结果。

谢谢!与此同时,我开始修改代码。基本上我会添加一个管道,如果我没有记错的话,我会添加它作为XtAppAddInput的主循环事件源之一,然后我就可以开始了。