Приостановка программы до получения ответа - PullRequest
0 голосов
/ 29 декабря 2011
static string IP_Address = "";
getIPAddress();
MessageBox.Show(IP_Address);

Моя функция такова:

 public static void getIPAddress()
 {
    Uri uri = new Uri("http://whatismyip.org", UriKind.Absolute);
    WebClient client = new WebClient();

    client.DownloadStringCompleted += (s, e) =>
        {
            var res = e.Result;
            IP_Address = res;
        };
    client.DownloadStringAsync(uri);
 }

Я использую этот код для установки IP-адреса моего клиента.Но проблема в том, что когда я запускаю код, сначала отображается пустая строка IP_Address, а затем выполняется только часть

client.DownloadStringCompleted += (s, e) =>
        {
            var res = e.Result;
            IP_Address = res;
        };

.Любые предложения по запуску вышеуказанного блока кода до отображения IP_Address.

1 Ответ

1 голос
/ 29 декабря 2011
 getIPAddress((ip) =>
 {
      MessageBox.Show(ip);
 });

.

 public static void getIPAddress(Action<string> callback)
 {
      Uri uri = new Uri("http://whatismyip.org", UriKind.Absolute);
      WebClient client = new WebClient();

      client.DownloadStringCompleted += (s, e) =>
      {
           var res = e.Result;

           callback(res);
      };
      client.DownloadStringAsync(uri);
 }
...