Класс в потоке, правильное решение - C#
Формулировка задачи:
Здравствуйте, есть класс.
При создании экземпляра вызывается конструктор, из конструктора цепная реакция по функциям.
Класс работает в потоке.
В итоге
class ...{ Функция 1(){ while(true) } Функция 2(){ } }
Функция 1
крутит цикл, я не смогу вызвать функциюФункция 2()
пока функцияФункция 1()
в потоке. Задача: Каким образом мне вызвать функциюФункция 2()
если функцияФункция 1()
всегда в цикле? Экземпляр класса должен быть один. P.S Вызов должен быть потокобезопасным дабыФункция 1()
иногда вызываетФункция 2()
. В принципе можно при вызове конструктора как-то образом вернуть ссылку на обьект который мне нужен. Но хотелось бы что бы вызов был из класса, не хочу раскидывать куски по программе.Решение задачи: «Класс в потоке, правильное решение»
textual
Листинг программы
class Example { private static Example _instance = new Example(); public static Example Instance { get { return _instance; } } private Example() { Task task = Task.Run(() => Function1()); Task run = Task.Run(() => Function2()); } private async static void Function1() { while (true) { await Task.Delay(1000); Console.WriteLine("Метод №1"); } } private static void Function2() { Console.WriteLine("Метод №2"); Function1(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д