2011-08-02 9 views
1

Windows Phone 7.1 APIに奇妙な問題があります。私はデスクトップPC上でマウスポインタを移動するタッチスクリーンからタッチデルタを送信するアプリを書こうとしています。私はUDPソケットを使用していますが、私はいくつかのパフォーマンス問題があります。Windows Phone 7.1(マンゴー)でudp-sendingをタッチ操作でフリーズしています

udp-messagesの送信は、約0.5秒ごとに0.5-1.0秒間フリーズするようです。私は大量のデータを送信していません。それを引き起こしたものを見つけるための私の最近の試みは予期せぬものでした。

ランダムなデータを送信し続けるwhileループを持つ別のスレッドを使用すると、すべてがスムーズでうまく動作します。しかし、私がWP7-Mobileの画面に触れ始めると、私はこれらの奇妙な問題を抱え始めます。私は、デバッグの目的でタッチイベントのすべてのリスナーを削除しています。私のアプリケーションでは何もしないで、このデータをUDPソケットで送信しています。しかし、画面上で指を動かすと、なぜこのように凍っていますか?このようなアプリを書くことは不可能です。

タッチ操作を専用スレッドに移動する必要があると聞いていますが、これはWP7.1のBeta2の更新に含まれていますか?

コードは次のようにやや行く:SendToAsyncが完了したときに

new Thread(() => 
    { 
     while (true) 
     { 
      _event.Reset(); 
      _socket.SendToAsync(_args); 
      _event.WaitOne(); 
      Thread.Sleep(5); 
     } 
    }).Start(); 

イベント・ハンドルが設定されています。したがって、5msごとにudpデータを送信し続けます。携帯電話の画面に指を触れたりドラッグしたりしない限り、正常に動作します(安定した速い速度で受信できます)。それから私は定期的に1秒の凍結を開始します。私はudp-firingを別のスレッドで実行して以来、非常に奇妙です。処理操作時に何らかの方法で電話機のCPUに過負荷がかかっていますか?しゃっくりを引き起こしているのでしょうか?


更新

私はそれをもう少し明確にするために、別のスレッドでこの質問をrefrasedし、更新しました:

Poor UDP performance with Windows Phone 7.1 (Mango)

+0

[Windows Phone 7.1(Mango)でのSamsung Omnia 7のUDPのパフォーマンスの低下](http://stackoverflow.com/questions/6930977/poor-performance-of-udp-on-samsung-omnia- 7-with-windows-phone-7-1-mango) –

答えて

1

すべてはあなたまでUIスレッドで実行されますそれを別のスレッドにプッシュします。私のイベントハンドラのほとんどは、私はマンゴーB2を持っており、いくつかのものは、UIスレッドをオフに移動されているが、これは不安定であり、それはそれを自分で行うのは簡単だことは事実である。この

ThreadPool.QueueUserWorkItem(state => /* do stuff */); 

のように見えます。

+0

最も奇妙なことは、Imが既に別のスレッドで自分のudp-firingを実行していることです。ランダムなデータを送信し続けるちょっとしたループです。私が画面に触れ始めるまで、それはちょっとうまくいく。その本当に奇妙な。 –

関連する問題