Как передать делегат в другой метод? - PullRequest
1 голос
/ 07 июня 2009

Я пишу класс для управления своими потоками. Как передать мой метод, который должен быть добавлен в мой вспомогательный класс?

Все, что я буду делать, - это создание нового потока и передача метода, через который я прошел, в новый ThreadStart ().

Заранее спасибо.

Ответы [ 4 ]

3 голосов
/ 07 июня 2009

Я не уверен, что вы подразумеваете под передачей void, но это должно помочь:

 void StartThread(ThreadStart method) {
     new Thread(method).Start();
 }

и позвоните по этому номеру:

 StartThread(myMethod);
3 голосов
/ 07 июня 2009

Вместо того, чтобы писать свой собственный класс для управления потоками, я предлагаю вам проверить класс BackgroundWorker в .NET 2.0 и более поздних версиях.

1 голос
/ 07 июня 2009

Вы можете передать метод или функцию в качестве делегата в .NET

0 голосов
/ 07 июня 2009
        public static void Iteration(Happy ending) {
        Thread t = new Thread(new ThreadStart(ending));
        t.Start();
    }

    public delegate void Happy();

внутри вашей главной страницы:

Iteration(() => Console.WriteLine("Hello World"));
...