Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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



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

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

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

Спасибо
Wing13 вне форума   Ответить с цитированием
Старый 19.05.2017, 15:21   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 14,852
Репутация: 2903

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Зависит от задачи. Например Timer или другой поток (Task, BackgroundWorker, Thread) с циклом.
Alex11223 на форуме   Ответить с цитированием
Старый 19.05.2017, 16:10   #3
Wing13
Новичок
 
Регистрация: 19.05.2017
Сообщений: 9
Репутация: 10
По умолчанию

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

Код:

public MainPage() {
var updThread = new Thread (Update);
updThread.Start();
}

void Update () {}

говорит: Thread не содержит конструктор который принимает аргументы

Последний раз редактировалось Alex11223; 19.05.2017 в 16:26.
Wing13 вне форума   Ответить с цитированием
Старый 19.05.2017, 16:25   #4
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 14,852
Репутация: 2903

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx
Alex11223 на форуме   Ответить с цитированием
Старый 19.05.2017, 18:04   #5
Wing13
Новичок
 
Регистрация: 19.05.2017
Сообщений: 9
Репутация: 10
По умолчанию

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

Цитата:
Сообщение от 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, подписываться на событие изменения свойства и там вставлять проверку и прочие манипуляции.
Всё зависит от того: что это за переменные, зачем нужна проверка и что делает.
Игровой цикл - это специфическая штука, там свои нюансы. В игре без разницы сколько раз и на какие значения менялась переменная, важно: какое значение у неё сейчас и сколько времени прошло с предыдущего кадра. В этом случае, наверно, только с потоками мутить.
__________________
http://coub.com/view/2hhtg
pu4koff вне форума   Ответить с цитированием
Старый 19.05.2017, 18:18   #7
Wing13
Новичок
 
Регистрация: 19.05.2017
Сообщений: 9
Репутация: 10
По умолчанию

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

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Причем тут xaml?

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

Цитата:
Сообщение от Wing13 Посмотреть сообщение
Все равно Thread не содержит конструктор который принимает аргументы 1
Может в системе или проекте чего-то нехватает..
дык посмотрите пример по ссылке.
Alex11223 на форуме   Ответить с цитированием
Старый 21.05.2017, 15:08   #9
Wing13
Новичок
 
Регистрация: 19.05.2017
Сообщений: 9
Репутация: 10
По умолчанию

В общем 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 в 15:19.
Wing13 вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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




21:08.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru