public void IsAddressible(Uri uri, IsAddressibleCallback callback, object userToken) { using (var client = new MyClient()) { client.HeadOnly = true; client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(IsAddressibleHeadString); client.DownloadStringAsync(uri, new object[] { callback, userToken }); } }
void IsAddressibleHeadString(object sender, DownloadStringCompletedEventArgs e) { IsAddressibleCallback callback = (IsAddressibleCallback)((object[])e.UserState)[0]; bool isAddressible = true; if (e.Error != null) { isAddressible = false; } callback.Invoke(isAddressible, ((object[])e.UserState)[1]); }