0

webClient_OpenReadCompletedから結果を取得したいのですが、getMethodで応答を取得したいのです。ただし、このコードでは、最初はgetMehodが機能し、その後getMethodが終了すると、webClient_OpenReadCompletedが機能します。getMethodで結果を取得する方法は?

psすべてWindowsPhoneにあります

public string apiUri = "https://api.vk.com/method/";
public string response = "";

public void getMethod(string parameters)
{
    var webClient = new WebClient();
    webClient.OpenReadCompleted += webClient_OpenReadCompleted;
    string uri = apiUri + parameters + "&access_token=" + access_token;
    webClient.OpenReadAsync(new Uri(uri));
}

void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
    XDocument xml = XDocument.Load(e.Result);
    response = xml.ToString();
}

public void statusGet(string uid)
{
    getMethod("status.get.xml?uid" + uid);
}
4

2 に答える 2

0

私はそれを試しませんでしたが、私は1人のシニアc#開発者に尋ねました、そして彼はブールを作成してこれを書くようにアドバイスしました:

bool work;

public void getMethod(string parameters)
{
    var webClient = new WebClient();
    webClient.OpenReadCompleted += webClient_OpenReadCompleted;
    string uri = apiUri + parameters + "&access_token=" + access_token;
    webClient.OpenReadAsync(new Uri(uri));
    work = true;
    while(work) { Thread.Sleep(100); }
}

void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
    XDocument xml = XDocument.Load(e.Result);
    response = xml.ToString();
    work = false;
}

アプリのアーキテクチャを変更したため、質問は実際にはありません。

于 2012-07-27T16:50:06.050 に答える
0

データを返したい場合は、1) データを保持するためのカスタム EventArgs 2) カスタム イベントを設定することをお勧めします。

データを取得したら、イベント引数を設定してから、サブスクライバーがデータを取得するようにイベントを設定します。

于 2012-07-27T08:02:06.973 に答える