我使用模拟器开发了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雷达WP7.8)18-22秒。
我的电脑和手机在同一个Wi-Fi网络中。 我有三个问题:
第一:这是正常的吗?
第二:为什么会这样?
第三:我怎么解决它?答案 0 :(得分:0)
有许多因素值得记住,仿真器性能通常比设备好很多,你应该试试设备。
话虽如此,你应该考虑数据显示的替代模型, 例如拨打电话,然后使用像ObservableCollection这样的数据到达数据块时填充数据。
您还可以使用后台任务实现下载数据并使其可用。
最后,这取决于你能做什么,不能做什么。
答案 1 :(得分:0)
与Hermit says类似:“有许多因素值得记住,仿真器性能通常比设备好很多,你应该试试设备。”
我的解决方案是 - 在真实设备上测试网络性能时,不要使用调试模式。只需创建XAP文件并将其加载到设备上即可。