如何在proxy_OpenReadCompleted方法中访问VIP?
void method1()
{
String VIP = "test";
WebClient proxy = new WebClient();
proxy.OpenReadCompleted += new OpenReadCompletedEventHandler(proxy_OpenReadCompleted);
String urlStr = "someurl/lookup?q=" + keyEntityName + "&fme=1&edo=1&edi=1";
}
void proxy_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)
有两种方法可以实现这一点。首先是将字符串作为调用中的第二个参数传递,该参数成为事件参数的属性OpenReadAsync值。UserState
void method1()
{
String VIP = "test";
WebClient proxy = new WebClient();
proxy.OpenReadCompleted += proxy_OpenReadCompleted;
String urlStr = "someurl/lookup?q=" + keyEntityName + "&fme=1&edo=1&edi=1";
proxy.OpenReadAsync(new Uri(urlStr, UriKind.Relative), VIP);
}
void proxy_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
String VIP = (string)e.UserState;
// Do stuff that uses VIP.
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用闭包直接访问变量:-
void method1()
{
String VIP = "test";
WebClient proxy = new WebClient();
proxy.OpenReadCompleted += (s, args) =>
{
// Do stuff that uses VIP.
}
String urlStr = "someurl/lookup?q=" + keyEntityName + "&fme=1&edo=1&edi=1";
proxy.OpenReadAsync(new Uri(urlStr, UriKind.Relative), VIP);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1154 次 |
| 最近记录: |