Windows Phone 7
[wp7] Event Handler러 대신 Callback 이용하여 return 하기
동동(이재동)
2010. 6. 9. 16:38
아까랑 다르게 이번에는 callback을 이용해서 해보겠다....
소스코드가 이상하게 올라가서 이제부터 <pre>태그를 써서 올려야겠다 ㅡ.ㅡ;;
일단 알아보기 쉽게 아까 소스를 재사용(?) 했다.
역시 download class가 있고 거기서 webClient에서 다운받은 웹소스를 저장혹은 출력하는것이다.
소스코드가 이상하게 올라가서 이제부터 <pre>태그를 써서 올려야겠다 ㅡ.ㅡ;;
public MainPage()
{
InitializeComponent();
SupportedOrientations = SupportedPageOrientation.Portrait | SupportedPageOrientation.Landscape;
Download.start(onStartComplete);
}
private void onStartComplete(string value, Exception ex)
{
Debug.WriteLine(value);
}
일단 알아보기 쉽게 아까 소스를 재사용(?) 했다.
역시 download class가 있고 거기서 webClient에서 다운받은 웹소스를 저장혹은 출력하는것이다.
헉 더 간단하다. 그냥 onStartComplete 메소드 하나 만들어서 파라미터로 값을 넣는다.
사실 이것보다 이것을 먼저 봐야 할것이다.
download.cs
public class Download
{
public static void start(Action<string,Exception> callback)
{
WebClient webRequest = new WebClient();
var apiURI = new Uri("http://www.google.co.kr", UriKind.RelativeOrAbsolute);
webRequest.DownloadStringAsync(apiURI);
webRequest.DownloadStringCompleted += (s, e) =>
{
string value = "Good Data"; //보낼데이타 e를 보내도 됨
callback(value, null);
};
}
}
코드가 한결 가벼워졌다...
</STRING,EXCEPTION>보면 Action 이라는것을 이용해서 값이랑 exception을 받고 DownloadCompete 시에 저 데이터를 callback 하는것이다.
이것도 말보다는 직접 소스를 보는게 나을것이다.
샘플소스
</STRING,EXCEPTION>[#FILE|Call_Back_Sample.zip|pds/201006/09/37/|mid|0|0|pds20|0#]
</STRING,EXCEPTION></STRING,EXCEPTION>