希望对你们来说一个简单的问题,但我真的很挣扎。 我刚刚开始编程并且刚刚在WP7应用程序商店中获得了一个应用程序认证,但在将应用程序公开之前我自己发现了一个我想修复的错误。
基本上我有一个搜索框,用户输入化学名称,网络服务返回图像及其分子量。我想要做的是取消webclient,如果用户在下载完成之前导航离开页面,或者在上一次完成之前进行了新的搜索(这会使应用程序崩溃,因为我认为你只能有一个请求一次?? ??
private void searchCactus()
{
WebClient imgClient = new WebClient();
imgClient.OpenReadCompleted += new OpenReadCompletedEventHandler(imgClient_OpenReadCompleted);
WebClient mwClient = new WebClient();
mwClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(mwClient_DownloadStringCompleted);
if (DeviceNetworkInformation.IsNetworkAvailable == false)
{
MessageBox.Show("No network found, please check network availability and try again");
}
else if (compoundSearchBox.Text.Contains("?"))
{
MessageBox.Show("\"?\" Not Permitted");
return;
}
else if (compoundSearchBox.Text != "")
{
progBar1.IsIndeterminate = true;
string imageuri = "http://cactus.nci.nih.gov/chemical/structure/" + compoundSearchBox.Text + "/image?format=png&width=300&height=300";
string mwURI = "http://cactus.nci.nih.gov/chemical/structure/" + compoundSearchBox.Text + "/mw";
imgClient.OpenReadAsync(new Uri(@imageuri), imgClient);
mwClient.DownloadStringAsync(new Uri(@mwURI), mwClient);
// //lower keyboard
this.Focus();
}
else MessageBox.Show("Enter Search Query");
}
我尝试实现以下按钮,但它不起作用
private void buttonCancel_Click(object sender, RoutedEventArgs e)
{
imgClient.CancelAsync();
mwClient.CancelAsync();
}
as“名称'mwClient'在当前上下文中不存在”
如果有人能提供一些指导,我将非常感激
答案 0 :(得分:2)
只需将两个客户端放入班级中的字段即可。