Нет, это не такой основной вопрос. Я делаю приложение и получаю scenerio, как, файл будет загружен, затем он будет загружен на FTP-сервер, затем локальная копия будет удалена, затем одна запись будет помещена в словарь для этого имени файла. Таким образом, код нижеКак передать аргумент EventHandler
public void download_This_WebPage(string url, string cookies_String, string local_Saving_File_Name_With_Path)
{
WebClient wb = new WebClient();
wb.Headers.Add(HttpRequestHeader.Cookie, cookies_String);
// Below I want to pass this local_File _Path to the event handler
wb.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(wb,);
wb.DownloadFileAsync(new Uri(url), local_Saving_File_Name_With_Path + ".html");
}
public void data_Download_Completed(Object sender, System.ComponentModel.AsyncCompletedEventArgs args)
{
//use the file name to upload the file to FTP
}
public FTP_Completed
{
// Delete the file
}
Но я не знаю, как передать это имя файла в обработчик событий download_Completed. Может ли кто-нибудь направить меня в этом
EDIT: Благодарим вас за ответы от «Дарин» и «Фредерик». Есть ли вообще способ передать пользовательские данные в (уже определен) обработчик событий, как показано ниже
void main_Fn()
{
string my_Data = "Data";
some_object a = new some_object();
some_Object.click_event += new eventHandler(click_Happened);
(Assume that the event passes two ints, I also want to pass the string "my_Data"
to "click_Happened")
some_object.start();
}
void click_Happened(int a, int b)
{
// I want to get the string "my_Data" here.
}
Короче, как обмануть подпись?
Спасибо за решение. Но, все равно, чтобы вводить данные, определенные пользователем, в обработчик событий ?. – prabhakaran
@prabhakaran, ну, вы можете передать любой тип в 'userToken', включая экземпляр любого' class' или 'struct', и он будет доступен в' UserState'. –
Простите мою грамматическую ошибку. Я имел в виду, как это сделать для любого обработчика событий? – prabhakaran