マウスの制御処理が大分重い。
でも、それだけじゃない。
……色々いじって分かったことはUDP送信処理が原因だ。
UDP送信処理を切ったら凄く軽くなった。
もちろんMCOS3の最重要な処理のため、UDPを単純に消す訳にはいかない。
恐らくUDPクライアントの生成に時間を要していると思われるため、
UDPクライアントの生成は下記のいずれかのケースに絞ろう。
(1)起動時
(2)MCOS2との通信開始時
UDPクライアントのクローズ処理は上記ケースと逆。つまり、
(1)終了時
(2)MCOS2との通信終了時
で、もし、上記対応が許されないのであれば、スレッド上で常時UDPクライアントは使い続ける。
なので、キューに命令を保存して、UDP通信スレッドがそのキューの内容を読み取って、通信処理を行う。
……
(1)の対応をしてみたが重い。
……
newする処理をことごとく起動時に移すと、動作することがわかったが、同時にわかったことがある。
ESC×2で戻しても、マウスの座標が戻されてしまうため、無限に処理を抜けないということになりえる。
抜けた場合の処理を実装しよう。
……
MCOS2に制御をうつした場合のマウスの座標をマイナスにしてしまおう。
そうすれば画面の外に出すことが出来る。
でも、これはもう少し先の話。MCOS2と通信を始めてからの話。
今日、MCOS2とMCOS3の接続まで行きたかったけど、ここまでか。。。酒飲もう。