我对 C# 和为 Windows Phone 8 进行开发还很陌生,遇到了一个我无法克服的问题。
我创建了一个执行一些 HTTP 请求的类,最后应该调用一个回调函数。
我需要将一个参数传递给回调函数,但我不知道该怎么做。
看起来我需要 IAsyncResult,但我无法创建它的实例。
我正在使用以下方法调用回调函数:
CallBack.Invoke(null);
效果很好,但我无法通过论证。
PS:CallBack
是一个 AsyncCallback()
编辑 - 更多代码:
呼叫者:
private void abcRenew_Click(object sender, EventArgs e)
{
api = new abcAPI();
api.CallBack = new AsyncCallback(abcRenew_Click_callback);
api.getNewAbc();
}
public void abcRenew_Click_callback(IAsyncResult asynchronousResult)
{
/* should get some values from api
}
接口:
public class abcAPI
{
public System.AsyncCallback CallBack { get; set; }
public void getNewAbc()
{
call();
}
private void call()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("...");
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
request.BeginGetRequestStream(new AsyncCallback(call_RequestStreamCallback), request);
}
void call_RequestStreamCallback(IAsyncResult asynchronousResult)
{
/* ... */
request.BeginGetResponse(new AsyncCallback(loadAndPostGeoposition_ResponseCallback), request);
}
void loadAndPostGeoposition_ResponseCallback(IAsyncResult asynchronousResult)
{
/* ... */
/* shall return this Pointer to CallBack function ->
Needs to be done, because there could be more than one running at the same time */
if (CallBack != null)
CallBack.Invoke(null);
}
}