Qt 4.8、Windows XP:
TCPメッセージを管理し、適切なタイミングでソケットを開いたり、維持したり、閉じたりするスレッドがあります。
この同じスレッドは、私のスレッドのデータで定義されている200ミリ秒のQTimerを開始します。これは、ソケットが開いている場合に、スレッドのクラスでイベントをポンピングします。したがって、タイマーとそのイベントはスレッドに属します。私が最もよく理解しているのはその考えです。
QTimerタイムアウトイベントは、スレッドに属するポートを介してTCPメッセージを送信します。これは、この特定のハードウェアアイテムのキープアライブメッセージです。定期的に送信する必要があります。そうしないと、デバイスが「消えて」しまいます。
メッセージが送信されると、次のエラーが発生します。
「QSocketNotifier:ソケット通知機能を別のスレッドから有効にすることはできません」
私の知る限り、私は同じスレッドからメッセージを送信しており、シグナルなどはそれによって所有/処理されることなどを期待しています。
誰かが私がここで欠けているものを教えてもらえますか?
PS:メッセージが送信され、デバイスは存続します... Qtエラーコンソールでこのランタイムエラーが発生しているだけで、それが原因で内部の問題が潜んでいるのではないかと非常に心配しています。
このメッセージは、OSX10.6で実行されている場合は発生しません。どうしてか分かりません。