powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как передать параметр с методом делегатом?
5 сообщений из 5, страница 1 из 1
Как передать параметр с методом делегатом?
    #38921686
erman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Помогите разобраться, пожалуйста.
Есть поток, запускающий метод с помощью делегата. Мне нужно передать параметром метода строку - название файла.
Сделал так - ошибка - пишет, что требуется имя метода.
Код: c#
1.
Thread thread = new Thread(new ThreadStart(GetInfoFile("nameFile")));


Код: c#
1.
2.
3.
4.
static private void GetInfoFile(string path)
{
     .......
}



Что не так, ведь имя метода передаю, как параметр передать?
...
Рейтинг: 0 / 0
Как передать параметр с методом делегатом?
    #38921705
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ermanЗдравствуйте!
Помогите разобраться, пожалуйста.
Есть поток, запускающий метод с помощью делегата. Мне нужно передать параметром метода строку - название файла.
Сделал так - ошибка - пишет, что требуется имя метода.
Код: c#
1.
Thread thread = new Thread(new ThreadStart(GetInfoFile("nameFile")));



Код: c#
1.
2.
3.
4.
static private void GetInfoFile(string path)
{
     .......
}




Что не так, ведь имя метода передаю, как параметр передать?
А где сам делегат?
...
Рейтинг: 0 / 0
Как передать параметр с методом делегатом?
    #38921809
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ermanЧто не так, ведь имя метода передаю, как параметр передать?
1. Передача делегата - это передача не имени метода, а ссылки на метод.
2. Вы передаете не ссылку на метод, а результат выполнения метода GetInfoFile, причем этот результат типа void, передача которого в C# запрещена.
3. Сигнатура делегата ThreadStart не предполагает передачи никаких параметров. Здесь параметр можно передать только через анонимный метод и замыкание:
Код: c#
1.
2.
var path = @"C:\Windows\System32\shell32.dll";
var thread = new Thread(() => GetInfoFile(path));
...
Рейтинг: 0 / 0
Как передать параметр с методом делегатом?
    #38921860
MrVoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда уж:
Код: c#
1.
Thread thr = new Thread(new ParameterizedThreadStart((obj) => GetInfoFile("fileName")));
...
Рейтинг: 0 / 0
Как передать параметр с методом делегатом?
    #38923139
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для начала лучше использовать Task, вместо Thread (если конечно версия framework'а позволяет)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как передать параметр с методом делегатом?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]