다행히도 당신을위한 쉬운 질문이지만 모두 정말 고민 중입니다. 방금 프로그래밍을 시작했으며 WP7 앱 스토어에 인증 된 앱을 보유했지만 앱을 공개하기 전에 수정하고 싶은 버그를 직접 발견했습니다.취소 webclient 비동기 요청
기본적으로 사용자가 화학 이름을 입력하고 웹 서비스가 이미지와 분자량을 반환하는 검색 상자가 있습니다. 내가 원하는 것은 사용자가 다운로드가 완료되기 전에 페이지를 탐색하거나 이전에 완료되기 전에 새로운 검색이 수행되면 웹 클라이언트를 취소하는 것입니다 (현재 하나의 요청 만 가질 수 있다고 생각되면 현재 응용 프로그램이 다운됩니다). 이 같은
private void buttonCancel_Click(object sender, RoutedEventArgs e)
{
imgClient.CancelAsync();
mwClient.CancelAsync();
}
작동하지 않습니다
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");
}
나는 다음과 같은 버튼을 구현하는 시도
있지만 한 번?)에
"이름이 'mwClient'는 현재 컨텍스트에 존재하지 않습니다" 누구든지 제공 할 수 있다면 매우 감사 할 것입니다. 어떤 지침
두 클라이언트를 클래스의 필드에 넣기 만하면됩니다. – svick
@svick은 내가 예상했던 것보다 더 쉬웠다. 공개 부분 클래스를 추가했다. MWSearch : PhoneApplicationPage { private WebClient imgClient; 개인 웹 클라이언트 mwClient; ...... 그게 당신이 의미하는 것이 었나요? 많은 감사를 다시 – shadyamigo