0
Я хотел бы запустить задачу во время ожидания веб-запроса. Если задача заканчивается, прежде чем запрос может вернуть ответ, я бы вывел сообщение «Сервер занимает слишком много времени». Я использую объект WebClient
, как я могу управлять тайм-аутом?WebClient TimeOut Windows Phone 8
public Class Result
{
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (NavigationContext.QueryString.TryGetValue("critere", out sCritere))
{
try
{
_datamanager = new DataManager();
_datamanager.m_evt_Client_DownloadStringCompleted += OnDownloadStringCompleted;
_datamanager.DownloadXmlData(DataManager.URL_RECHERCHE, sCritere);
//HERE I NEED TO RUN A TIMER If the response is too long i would display a message
}
catch(Exception ex)
{
MessageBox.Show(ex.Message, "Erreur", MessageBoxButton.OK);
NavigationService.GoBack();
NavigationService.RemoveBackEntry();
}
}
}
}
public Class DataManager
{
public void DownloadXmlData(string uri, string critere = "")
{
try
{
WebClient client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
client.Credentials = new NetworkCredential(UserSaved, PasswordSaved, domain);
client.DownloadStringAsync(new Uri(uri + critere));
}
catch(WebException)
{
throw new WebException(MyExceptionsMessages.Webexception) ;
}
catch (Exception)
{
throw new UnknowException(MyExceptionsMessages.UnknownError);
}
}
public void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
//raise Downloadstringcompleted event if error==null
}
}
я нашел, что это ... может быть, я должен использовать Task ... Выглядит проще и лучше ... [Task VS BGW] (HTTP: // blog.stephencleary.com/2013/09/taskrun-vs-backgroundworker-round-4.html) –