由于一些國企有國產化的需求,所以搞了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通訊軟件


簽名:<-CPF C# 跨平臺桌面UI框架,支持Windows,Mac,Linux,包括XP,國產麒麟Linux等等->
浙公網安備 33010602011771號