Класс в потоке, правильное решение - 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();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д