Передача в поток, функции с двумя параметрами - C#
Формулировка задачи:
Всем привет, у меня возникла проблема, при создании потока, в него нужно передать функцию с двумя параметрами, пытаюсь сделать это через делегат, но выдает ошибку, подскажите кто в теме
метод compare просто производи обмен двух элементов массива
for (int i = lo + r; i + r < lo + n; i += m) { threads[i] = new Thread(delegate() { compare(i, i + r); }); threads[i].Start(); } for (int i = lo + r; i + r < lo + n; i += m) { threads[i].Join(); }
Решение задачи: «Передача в поток, функции с двумя параметрами»
textual
Листинг программы
class programm { public int a, b; public programm(int x, int y) { a = x; b = y; } static void compare(object data) { if (data is programm) { //тут ваши действия } } static void Main() { Console.WriteLine("Id of thread managed: {0}", Thread.CurrentThread.ManagedThreadId); programm pr = new programm(10, 20); Thread t = new Thread(new ParameterizedThreadStart(compare)); t.Start(pr); Thread.Sleep(5); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д