Передача в поток, функции с двумя параметрами - 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);
}
}