0

我使用模拟器开发了 WP7 应用程序。一切都很棒。为了与服务器通信,我使用了 WebClient 和 RestClient。但是要在真实设备上测试应用程序 - 我大吃一惊。

1)

private void LoadData()
{
var webClient = new WebClient();
webClient.DownloadStringCompleted += DownloadStringCompleted;
webClient.DownloadStringAsync(new Uri(Constants.Url1));
//Point_1
}

private void DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    //Point_2     
}

在 Point_1 和 Point_2 之间的模拟器上 0.8-1.2 秒。在 Point_1 和 Point_2 之间的真实设备 (HTC Radar WP7.8) 上 15-20 秒。

2)

var request = new RestRequest(url) {Method = Method.POST}; 
//Point_3
RestClient.ExecuteAsync(request, response =>
{
//Point_4
}

在 Point_3 和 Point_4 之间的模拟器上 0.3-0.5 秒。在 Point_3 和 Point_4 之间的真实设备 (HTC Radar WP7.8) 上 18-22 秒。

我的电脑和手机在同一个无线网络中。我有三个问题:

第一:正常吗?

第二:为什么会这样?

第三:我该如何解决?

4

2 回答 2

0

有很多因素,但值得记住的是,模拟器性能通常比设备好得多,您应该在设备上试用。

话虽如此,您应该考虑数据显示的替代模型,例如拨打电话,然后使用 ObservableCollection 之类的东西在数据块到达时填充数据。

您还可以使用后台任务实现下载数据并使其可用。

最后,这取决于你能做什么和不能做什么。

于 2013-04-02T15:06:07.893 回答
0

就像Hermit 所说:“有很多因素,但值得记住的是,模拟器的性能通常比设备好得多,你应该在设备上试一试。”

我的解决方案是 - 在真实设备上测试网络性能时不要使用调试模式。只需创建 XAP 文件并将其加载到设备上。

于 2013-04-05T11:05:51.180 回答