Класс в потоке, правильное решение - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, есть класс.
Листинг программы
  1. class ...{
  2. Функция 1(){
  3. while(true)
  4. }
  5. Функция 2(){
  6. }
  7. }
При создании экземпляра вызывается конструктор, из конструктора цепная реакция по функциям. Класс работает в потоке. В итоге

Функция 1

крутит цикл, я не смогу вызвать функцию

Функция 2()

пока функция

Функция 1()

в потоке. Задача: Каким образом мне вызвать функцию

Функция 2()

если функция

Функция 1()

всегда в цикле? Экземпляр класса должен быть один. P.S Вызов должен быть потокобезопасным дабы

Функция 1()

иногда вызывает

Функция 2()

. В принципе можно при вызове конструктора как-то образом вернуть ссылку на обьект который мне нужен. Но хотелось бы что бы вызов был из класса, не хочу раскидывать куски по программе.

Решение задачи: «Класс в потоке, правильное решение»

textual
Листинг программы
  1.         class Example
  2.         {
  3.             private static Example _instance = new Example();
  4.  
  5.             public static Example Instance
  6.             {
  7.                 get { return _instance; }
  8.             }
  9.  
  10.             private Example()
  11.             {
  12.                 Task task = Task.Run(() => Function1());
  13.                 Task run = Task.Run(() => Function2());
  14.             }
  15.  
  16.             private async static void Function1()
  17.             {
  18.                 while (true)
  19.                 {
  20.                     await Task.Delay(1000);
  21.                     Console.WriteLine("Метод №1");
  22.                 }
  23.             }
  24.  
  25.             private static void Function2()
  26.             {
  27.                 Console.WriteLine("Метод №2");
  28.                 Function1();
  29.             }
  30.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы