2009-06-07 8 views
1

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

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

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

+1

Вы не проходите мимо пустоты, вы передаете делегат. Определение делегата ThreadStart: public delegate void ThreadStart(); – HVS

ответ

3

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

+0

На самом деле, это может быть лучший путь вперед, я не знаю, о чем я думал! – GenericTypeTea

3

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

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

и назвать его:

StartThread(myMethod); 
1

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

0
 public static void Iteration(Happy ending) { 
     Thread t = new Thread(new ThreadStart(ending)); 
     t.Start(); 
    } 

    public delegate void Happy(); 

внутри ваш главный:

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