摘要
为了满足国营企业的需求,我尝试在C#上兼容中标麒麟和神州龙芯,但遇到了一些问题。在龙芯版本中,pipe2无法使用,但在x64版本中可以。UI开发必须使用主线程信息循环系统和自定义信息来实现跨进程操作UI,这就像Winform和WPF中的Inv…一样重要。
正文
C# 搞桌面上UI兼容国内麟麟Linux 神州龙芯碰到的一些坑
因为一些国营企业有国内生产制造的的要求,因此搞了C#兼容中标麒麟,兼容了X64和神州龙芯MIPS版本号
1、 在中标麒麟的神州龙芯版本号中 pipe2 不可以应用,x64版本号上却可以用。
pipe2 用于做自定信息的,搞UI是必须主线任务程信息循环系统,此外还必须自定信息来完成跨进程来实际操作UI,便是Winform和WPF里的Invoke和BeginInvoke,别的进程推送自定信息到主线任务程,主线任务程接受以后,就实行相对应的UI实际操作。假如用XSendEvent来完成,延迟时间很严重。之后参照Mono里的完成,把pipe2改为用Socket就可以了。
2、在中标麒麟的神州龙芯版本号中发生任务栏图标闪动,无尽激话获得聚焦点,x64版本号却没什么问题。实际上便是FocusIn 信息里,假如再启用XRaiseWindow(Display, Handle);XSetInputFocus(Display, Handle, 0, IntPtr.Zero);便会发生这类无限循环。之后加个分辨就好了。
3、此次是中标麒麟的x64版本号的文档访问 提示框不稳定,提示框是启用Gtk来完成的,只有调用个文档提示框了,不依靠GTK的。
运作实际效果,CPF做的IM通信软件
关注不迷路
扫码下方二维码,关注宇凡盒子公众号,免费获取最新技术内幕!
评论0