Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2017, 14:16   #1
Wing13
Новичок
Джуниор
 
Регистрация: 19.05.2017
Сообщений: 9
По умолчанию Как мониторить переменные

Добрый день!
Раньше писал код только в игровых движках, там обычно есть функция которая вызывается игрой постоянно.
Сейчас появилась необходимость писать код в xaml вроде все понятно, но не могу дойти как мне проверять состояние перемнных.

То есть, например, есть if (a==1 && b==1) {c();} где состояние перемнных а и б может измениться в любое время и при выполнении равенства нужно запустить с();.
В игре это работает само по себе потому что любой игровой движок запускает события обновления десятки раз в секунду, а тут что делать?

Спасибо
Wing13 вне форума Ответить с цитированием
Старый 19.05.2017, 14:21   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Зависит от задачи. Например Timer или другой поток (Task, BackgroundWorker, Thread) с циклом.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 19.05.2017, 15:10   #3
Wing13
Новичок
Джуниор
 
Регистрация: 19.05.2017
Сообщений: 9
По умолчанию

Alex11223 гуглю такие варианты, написал такое

Код:
public MainPage() {
var updThread = new Thread (Update);
updThread.Start();
}

void Update () {}
говорит: Thread не содержит конструктор который принимает аргументы

Последний раз редактировалось Alex11223; 19.05.2017 в 15:26.
Wing13 вне форума Ответить с цитированием
Старый 19.05.2017, 15:25   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 19.05.2017, 17:04   #5
Wing13
Новичок
Джуниор
 
Регистрация: 19.05.2017
Сообщений: 9
По умолчанию

Все равно Thread не содержит конструктор который принимает аргументы 1
Может в системе или проекте чего-то нехватает..
Wing13 вне форума Ответить с цитированием
Старый 19.05.2017, 17:06   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Wing13 Посмотреть сообщение
Добрый день!
Раньше писал код только в игровых движках, там обычно есть функция которая вызывается игрой постоянно.
Сейчас появилась необходимость писать код в xaml вроде все понятно, но не могу дойти как мне проверять состояние перемнных.

То есть, например, есть if (a==1 && b==1) {c();} где состояние перемнных а и б может измениться в любое время и при выполнении равенства нужно запустить с();.
В игре это работает само по себе потому что любой игровой движок запускает события обновления десятки раз в секунду, а тут что делать?

Спасибо
a и b оформите в виде свойств, у которых в set методе добавляйте нужную проверку и прочие телодвижения. Типа:
Код:
public int A
{
  get
  {
    return a;
  }
  set
  {
    if (a != value)
    {
      a = value;
      if (A == 1 && B == 1) {c();}
    }
  }
}
Никаких потоков и проверок не нужно, просто меняете значение свойства A и проверка вызовется.
Можно еще смотреть в сторону INotifyPropertyChanged, подписываться на событие изменения свойства и там вставлять проверку и прочие манипуляции.
Всё зависит от того: что это за переменные, зачем нужна проверка и что делает.
Игровой цикл - это специфическая штука, там свои нюансы. В игре без разницы сколько раз и на какие значения менялась переменная, важно: какое значение у неё сейчас и сколько времени прошло с предыдущего кадра. В этом случае, наверно, только с потоками мутить.
pu4koff вне форума Ответить с цитированием
Старый 19.05.2017, 17:18   #7
Wing13
Новичок
Джуниор
 
Регистрация: 19.05.2017
Сообщений: 9
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Всё зависит от того: что это за переменные, зачем нужна проверка и что делает.
Ну, я пишу код в xaml надстройке на unity игру, переменная a внутри игры и фактически доступна в xaml только для чтения, значение переменной b меняется когда данные из интернета подгружаются, ну тут просто все, но мне надо что бы действие (показ загруженного контента) выполнялось не только когда он собственно загрузился, но и когда в игре произойдет событие т.е. переменная a примет нужный вид.
Wing13 вне форума Ответить с цитированием
Старый 19.05.2017, 17:23   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Причем тут xaml?

Можно сделать свойство (обычное C#) и в set либо вызывать что надо, либо INotifyPropertyChanged

Цитата:
Сообщение от Wing13 Посмотреть сообщение
Все равно Thread не содержит конструктор который принимает аргументы 1
Может в системе или проекте чего-то нехватает..
дык посмотрите пример по ссылке.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.05.2017, 14:08   #9
Wing13
Новичок
Джуниор
 
Регистрация: 19.05.2017
Сообщений: 9
По умолчанию

В общем Thread при сборке на Windows universal вообще не работает, но работает Task, решил сабжевую задачу так:

Код:
public MainPage() {

            Task task1 = new Task(() => {

                for (;;) {Task.Delay(500);
                    if (AdStatus == 1 && AdRandom.AdShown==1) {

                        //Вызов контента
                    }
                }

            });
            task1.Start();
}

Последний раз редактировалось Wing13; 21.05.2017 в 14:19.
Wing13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть ли возможность мониторить TCP-backlog для процесса rlib Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 0 24.08.2016 12:11
Как проинвертировать переменные? Vladzis Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 29.06.2014 17:31
Как вывести переменные Masafi Общие вопросы .NET 6 22.11.2012 21:05
Переменные экземпляра,класса, константы и переменные cop08 Общие вопросы .NET 3 20.12.2010 21:56
как обнулить переменные boris-blade Microsoft Office Word 1 24.01.2010 04:59