В настоящее время, работая над проектом с облачным/лазурным и окном телефона 7, я должен позвонить в службу.Остыньте, убедитесь, что асинхронный метод завершен
Для меня удобство я использую острый отдых, но перед вами стоит проблема; Я не знаю, когда мое обращение завершено.
public static bool CreateUser(User userToCreate)
{
if (CheckNetwork())
{
var client = new RestClient(Global.Url);
var request = new RestRequest("/user", Method.POST);
MemoryStream ms = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(User));
ser.WriteObject(ms, userToCreate);
string json = JsonHelper.ToJson(userToCreate);
request.AddHeader("Content-type", "application/json; charset=utf-8");
request.AddParameter("application/json; charset=utf-8", json, ParameterType.RequestBody);
request.RequestFormat = DataFormat.Json;
try
{
object resp = null;
client.ExecuteAsync(request, response =>
{
if (response.ResponseStatus == ResponseStatus.Completed)
{
RestResponse resource = response;
string content = resource.Content;
resp = Convert.ToBoolean(JsonHelper.FromJson<string>(content));
}
});
return (bool)resp;
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
return false;
}
}
MessageBox.Show("You are not connect to the network!");
return false;
}
В этом примере метод возвращает сначала «resp» перед тем, как позвонить в службу. Как я могу быть уверен, что я не выхожу из этого метода до того, как он не был заполнен?
Почему все повторяется дважды? –
Почему все повторяется дважды? –