【发布时间】:2016-01-25 08:48:03
【问题描述】:
我想实现一个负责将我的 Webclient 订阅到处理程序的方法,当我想取消订阅时,它似乎没有正确完成。 我有一个例子:
我用来订阅的函数
private void SendRequest(Action<object, UploadStringCompletedEventArgs> callback, string url)
{
if (!wClient.IsBusy)
{
wClient.UploadStringCompleted += new UploadStringCompletedEventHandler(callback);
wClient.UploadStringAsync(new Uri(url), "POST");
[...]
}
}
我的处理程序
private void wClient_request1Completed(object sender, UploadStringCompletedEventArgs e)
{
wClient.UploadStringCompleted -= wClient_request1Completed;
[...]
}
private void wClient_request2Completed(object sender, UploadStringCompletedEventArgs e)
{
wClient.UploadStringCompleted -= wClient_request2Completed;
[...]
}
我会像这样使用这些方法
private WebClient wClient = new WebClient();
SendRequest(wClient_request1Completed, myUrl1);
// wClient_request1Completed(..) is run successfully
[... Request 1 is already completed ...]
SendRequest(wClient_request2Completed, myUrl2);
// wClient_request1Completed(..) and wClient_request2Completed(..) are run
你知道我的问题吗? 非常感谢!
【问题讨论】:
标签: c# windows-phone-7 windows-phone-8 webclient