Передача в поток метода с параметрами - C#
Формулировка задачи:
Нужно запустить метод ScreenUpdate(Pet)
Без проблем могу вызвать метод без использования потока (thread)
ScreenUpdate(Pet);
Но с созданием потока - проблемы (скрин1)
static void ScreenUpdate(Property Pet)
{
while (true)
{
Console.SetCursorPosition(0, 0);
Console.WriteLine(Pet.Name);
Console.SetCursorPosition(0, 1);
Console.WriteLine("Health " + Pet.Health);
Console.SetCursorPosition(0, 2);
Console.WriteLine("Starveness " + Pet.Starveness);
Console.SetCursorPosition(0, 3);
Console.WriteLine("Happiness " + Pet.Happiness);
Console.SetCursorPosition(0, 4);
Console.WriteLine("Toilet " + Pet.Toilet);
Console.SetCursorPosition(0, 5);
Thread.Sleep(1000);
}
} Thread Screen = new Thread(new ParameterizedThreadStart(ScreenUpdate(Pet)));
Screen.IsBackground = true;
Screen.Start();Решение задачи: «Передача в поток метода с параметрами»
textual
Листинг программы
Thread Screen = new Thread(ScreenUpdate);
Screen.IsBackground = true;
Screen.Start(Pet);
static void ScreenUpdate(object param)
{
Property Pet = (Property)param;
while (true)
{
Console.SetCursorPosition(0, 0);
Console.WriteLine(Pet.Name);
Console.SetCursorPosition(0, 1);
Console.WriteLine("Health " + Pet.Health);
Console.SetCursorPosition(0, 2);
Console.WriteLine("Starveness " + Pet.Starveness);
Console.SetCursorPosition(0, 3);
Console.WriteLine("Happiness " + Pet.Happiness);
Console.SetCursorPosition(0, 4);
Console.WriteLine("Toilet " + Pet.Toilet);
Console.SetCursorPosition(0, 5);
Thread.Sleep(1000);
}
}