Я хотел реализовать метод, который отвечает за подписку на мой Webclient для обработчиков, и когда я хочу отказаться от подписки, кажется, что это сделано неправильно. У меня есть пример:Отказаться от обработчика события Webclient на C#?
моя функция используется для подписки
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
У Вас есть идея о моей проблеме? Большое вам спасибо!
Большое вам спасибо, это отлично решает мою проблему! – Xavier