我在写一个必须访问MySQL数据库的程序。为此,我编写了一个PHP WebService以获取表中的所有值。我遇到的问题是我正在用C#编写一个函数来获取这些值。我希望函数等待,直到调用DownloadStringCompleted事件的事件处理程序,然后返回值。我这样做:System.Net.WebClient问题
WebClient client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadCompletedHandler);
client.DownloadStringAsync(new Uri(Application.Current.Host.Source.AbsoluteUri + "\\PHP\\GetAdmins.php"));
while (DownloadCompleted == false) { }
return DownloadResult;
但是,这使得程序挂起。
我需要的东西,将暂停程序的一部分,直到DownloadConpleted = true。
我正在运行Visual Studio Ultimate 2010,我正在制作一个Silverlight应用程序,任何帮助将不胜感激。
与调用方法的阻塞版本不同:webClient.DownloadString(new Uri(“http://google.com”)); ??? – 2011-03-26 23:48:04
@Mitch - 是的但在Silverlight afaik中不支持 - 这是启用同步请求的拐杖,但正如评论中提到的,OP应该采用异步方法,而不是尝试查找解决方法。 – BrokenGlass 2011-03-26 23:49:33
啊,SilverLight!错过了那一点。 – 2011-03-26 23:50:28