我的功能如下:
public static Task<string> MakeAsyncRequest(string url, string contentType)
{
LogMe (TAG, url);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = contentType;
request.Method = WebRequestMethods.Http.Get;
request.Timeout = 200000;
request.Proxy = null;
Task<WebResponse> task = Task.Factory.FromAsync(
request.BeginGetResponse,
asyncResult => request.EndGetResponse(asyncResult),
(object)null);
return task.ContinueWith(t => ReadStreamFromResponse(t.Result));
}
那么,如何为这个tasK设置超时?
例如,10秒后,此任务取消,吐司说&#34;连接超时&#34;
我是C#的初学者
请协助。
答案 0 :(得分:0)
使用此功能时,该功能的时间为20000ms =超时20秒。
此函数执行请求的响应。使用此代码读取响应。
private static string ReadStreamFromResponse(WebResponse response)
{
using (Stream responseStream = response.GetResponseStream())
using (StreamReader sr = new StreamReader(responseStream))
{
//Need to return this response
strContent = sr.ReadToEnd();
}
return strContent;
}
我猜这有助于你。
我正在处理相同的代码,如果您需要请问我。
自从Renan costella答案 1 :(得分:-1)
CountDownTimer counter = new CountDownTimer(1000 * 10,0){
@Override public void onTick(long millisUntilFinished){}
@覆盖
public void onFinish(){// finish that task }
};
在MakeAsyncRequest(...)之前调用下面的methode;
counter.start();