gpt4 book ai didi

.net - 触摸操作卡住了我在Windows Phone 7.1(Mango)中的udp发送

转载 作者:行者123 更新时间:2023-12-03 12:06:29 25 4
gpt4 key购买 nike

我对Windows Phone 7.1 API有一个奇怪的问题。我试图编写一个应用程序来从触摸屏发送触摸增量,以在台式机上移动鼠标指针。我正在使用UDP套接字,但是有一些性能问题。

udp消息的发送似乎每隔0.5秒左右冻结0.5-1.0秒。我没有发送大量数据,也没有限制我。我最近一次尝试查找导致问题的原因,结果出乎意料。

当使用带有while循环的单独线程来保持发送随机数据的速度时,一切都会顺利进行。但是,当我开始触摸WP7-mobile的屏幕时,我开始感到这些奇怪的问题。我已删除所有触摸事件上的监听器以进行调试,并且我在我的应用中未执行任何其他操作,然后在UDP套接字上发送了此数据。但是,当我在屏幕上移动手指时,为什么会像这样冻结?这使得不可能编写这样的应用程序。

我听说应该将触摸操作移到专用线程,WP7.1的Beta2刷新中是否包含该操作?

代码如下所示:

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

SendToAsync完成后,将设置事件句柄。因此,它一直每5毫秒发送一次udp数据。只要我不触摸并在手机屏幕上拖动手指,它就可以很好地工作(我可以稳定,快速地接收信号)。然后我开始以固定间隔冻结1秒。自从我在一个单独的线程上运行udp-firing以来,这非常奇怪。处理操作时手机的CPU是否过载?那会引起打ic吗?

更新

我在另一个线程中对此问题进行了重新解释和更新,以使其更加清楚:

Poor UDP performance with Windows Phone 7.1 (Mango)

最佳答案

一切都在UI线程上运行,直到将其推送到另一个线程。我大多数的事件处理程序看起来像这样

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

我有Mango b2,确实有一些东西已经从UI线程中移出了,但这很不稳定,而且您自己也很容易做到。

关于.net - 触摸操作卡住了我在Windows Phone 7.1(Mango)中的udp发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6917983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com