Webclient'ten Json'a yanıtı dönüştürmeye çalışıyorum, ancak sunucudan indirilmeden önce JSON nesnesini oluşturmaya çalışıyor. WebOpenReadCompleted'in yürütülmesini beklemem için "güzel" bir yol var mı?Etkinliğin bitmesi bekleniyor
bu bir WP7 uygulaması olduğunu söz var, yani her şey Sen zaman uyumsuz okuma tamamlanana kadar bir EventWaitHandle
güzel engellemek için kullanabileceğiniz zaman uyumsuz
public class Client
{
public String _url;
private String _response;
private WebClient _web;
private JObject jsonsobject;
private Boolean blockingCall;
private Client(String url)
{
_web = new WebClient();
_url = url;
}
public JObject Login(String username, String password)
{
String uriUsername = HttpUtility.UrlEncode(username);
String uriPassword = HttpUtility.UrlEncode(password);
Connect(_url + "/data.php?req=Login&username=" + uriUsername + "&password=" + uriPassword + "");
jsonsobject = new JObject(_response);
return jsonsobject;
}
public JObject GetUserInfo()
{
Connect(_url + "/data.php?req=GetUserInfo");
jsonsobject = new JObject(_response);
return jsonsobject;
}
public JObject Logout()
{
Connect(_url + "/data.php?req=Logout");
jsonsobject = new JObject(_response);
return jsonsobject;
}
private void Connect(String url)
{
_web.Headers["Accept"] = "application/json";
_web.OpenReadCompleted += new OpenReadCompletedEventHandler(WebOpenReadCompleted);
_web.OpenReadAsync(new Uri(url));
}
private void WebOpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
if (e.Error != null || e.Cancelled)
{
MessageBox.Show("Error:" + e.Error.Message);
_response = "";
}
else
{
using (var reader = new StreamReader(e.Result))
{
_response = reader.ReadToEnd();
}
}
}
}
EventWaitHandle, burada kullanılacak doğru şey gibi görünüyor. – nickknissen