• Можно ли в конструктор Thread() передать функцию через переменную?

    petermzg
    @petermzg
    Самый лучший программист
    Thread threads = new Thread(func);
    Вы передаете не имя функции, а метод. При этом метод должен соответствовать определенному описанию
    delegate void ParameterizedThreadStart(object obj); // если передается параметр
    delegate void ThreadStart(); // если не передается


    Программа это всетаки набор функций/[методов обьектов]. И имен у этих функций как таковых нет.
    Имена функций это extra информация, что в .Net можно получить через механизм Reflection.

    Для вашей задачи, можно сделать коллекцию.
    Dictionary<string, Action> funcs;
    Куда сможете сохранить нужные вам имена и задать функцию для исполнения.
    Thread threads = new Thread(funcs["имя функции"]);
    Для более сложных вариантов, вам нужно будет смотреть в сторону использования Reflection
    Ответ написан
    1 комментарий