Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
1

Если мне не нужно привязывать код к событию, то где размещать код?

20.05.2018, 22:22. Показов 2509. Ответов 43
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Кто-нибудь умный ответьте. Если мне не нужно привязывать код к событию. Если мне не нужно привязывать код к "кнопке", "мыши", "щелчкам", "кликам" и т.д.
Куда "втыкать" код, чтобы он исполнялся?

Ответьте пож. умно, доходчиво и навсегда.

Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2018, 22:22
Ответы с готовыми решениями:

Как в конфигураторе быстро найти код для нужно мне объекта?
Доброго времени суток. Помогите начинающему программисту. Есть Зуп 3.0. Отчет Регламинтированный...

приведите мне пример программы (код), где имеется окно не стандартной формы (например круг)
и если можно ... напишите, где можно прочитать как это делать...

Вложенные циклы и итерации (нужно что бы последовательностью, нужно код усовершенствовать, ну и сам код проверить )
Дано действительное число х. Последовательность a1, a2, ... образована по следующему закону: type...

нужно отредактировать код, где то ошибка
Задание Дана целочисленная квадратная матрица. Определить: 1. сумму элементов в тех столбцах,...

43
5 / 5 / 5
Регистрация: 28.01.2017
Сообщений: 30
20.05.2018, 23:05 2
Лучший ответ Сообщение было отмечено Bulky как решение

Решение

Цитата Сообщение от Bulky Посмотреть сообщение
Если мне не нужно привязывать код к событию
Пример бы сказали .
Цитата Сообщение от Bulky Посмотреть сообщение
Куда "втыкать" код, чтобы он исполнялся?
Инициализируешь класс,метод и т д и он выполняется ))))
А если речь о WinForms есть Aplication Idle, тыкаешь в него код и он исполняется всегда , когда приложение переходит в ожидание .
1
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
20.05.2018, 23:22  [ТС] 3
вот простенький код. Как работать c переменной вне event handlers?



C#
1
2
3
4
5
6
7
 if (!valueBool1) 
 
 {
       //to do something here
 }
 
 else return;
0
5 / 5 / 5
Регистрация: 28.01.2017
Сообщений: 30
20.05.2018, 23:52 4
Цитата Сообщение от Bulky Посмотреть сообщение
Как работать c переменной вне event handlers?
Никак , присвоив значение переменной завершается исполнения основной ветви кода , CLR не может исполнять код в бесконечной цикличности . Далее все подкручено на ивентах и изменить ты сможешь ее только при исполнении (вызове) события .
0
Эксперт .NET
6510 / 4086 / 1606
Регистрация: 09.05.2015
Сообщений: 9,553
20.05.2018, 23:58 5
Чтобы ответить на ваш вопрос, нужно сначала узнать когда вам нужно выполнять этот самый код, например при запуске приложения? при первом открытии формы? периодически каждые Х секунд/минут и т.д.

А тот пример выше вообще не имеет смысла без контекста...
0
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
21.05.2018, 00:21  [ТС] 6
Цитата Сообщение от TimePK Посмотреть сообщение
Никак , присвоив значение переменной завершается исполнения основной ветви кода , CLR не может исполнять код в бесконечной цикличности . Далее все подкручено на ивентах и изменить ты сможешь ее только при исполнении (вызове) события .
то есть вне обычных events наш общий друг timer_tick?

Добавлено через 7 минут
Цитата Сообщение от Someone007 Посмотреть сообщение
Чтобы ответить на ваш вопрос, нужно сначала узнать когда вам нужно выполнять этот самый код, например при запуске приложения? при первом открытии формы? периодически каждые Х секунд/минут и т.д.

А тот пример выше вообще не имеет смысла без контекста...
при запуске приложения - я знаю какб расписано во всех книгах для Чайников.
при первом открытии формы - тоже расписано в книгах для Чайников.

периодически каждые Х секунд/минут и т.д.
по принципу PLC что-ли. Как вам еще объяснить. Ну бред реальный, что все "закручено" вокруг событий. Не все же "Калькуляторы" и "Саперы" делают с утра до вечера.
0
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
21.05.2018, 00:45 7
Лучший ответ Сообщение было отмечено Bulky как решение

Решение

Цитата Сообщение от Bulky Посмотреть сообщение
Куда "втыкать" код, чтобы он исполнялся?
В основной метод Main(), код будет выполняться, так работают все приложения в принципе

Добавлено через 1 минуту
нужен таймер пихай таймер в Main()
нужно ожидание действий юзера пихай соответствующий код в Main()
нужен отдельный поток который будет что-то делать пихай его вызов в Main() и ожидай выполнения
окна - это такой же код в Main() как и всё остальное, просто чуть сложней (крутит цикл ждет событий вызывает обработчики)
0
3564 / 2505 / 1174
Регистрация: 14.08.2016
Сообщений: 8,214
21.05.2018, 02:15 8
расслабтесть...ТС ничего не понимает ни в событиях, ни в делетагах, ни в C#, ни в программмировании как таковом...
0
Эксперт .NET
12505 / 8692 / 1310
Регистрация: 21.01.2016
Сообщений: 32,650
21.05.2018, 07:31 9
Цитата Сообщение от Bulky Посмотреть сообщение
Ну бред реальный, что все "закручено" вокруг событий
Мне кажется, что вы это сами придумали про "закрученность".

Есть основной поток (начинающийся в Main), есть возможность порождать свои потоки, есть события. Этого за глаза для решения всех возможных задач.

От вас хотелось бы услышать суть вашей проблемы.
1
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
21.05.2018, 08:29  [ТС] 10
Цитата Сообщение от Diamante Посмотреть сообщение
расслабтесть...ТС ничего не понимает ни в событиях, ни в делетагах, ни в C#, ни в программмировании как таковом...
@Diamante. Например, m0nax и Usaga обмолвились об отдельном потоке. Почитал, -кажись это то, что нужно.
Жаль ты об этом не обмолвился. наверное threads тоже в стадии изучения?
0
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,311
21.05.2018, 10:06 11
Bulky,
Цитата Сообщение от Bulky Посмотреть сообщение
Куда "втыкать" код, чтобы он исполнялся?
Можно в сетер засунуть, переменная изменяется - код выполняется.

А вообще, вы хотите модель прерываний как в микроконтроллерах что ли? Можно попытаться смоделировать с помощью двух потоков, наверное.

Цитата Сообщение от Bulky Посмотреть сообщение
Ну бред реальный, что все "закручено" вокруг событий.
Почему же? Каждый язык имеют свою модель, парадигму программирования. Здесь все закручено вокруг событий. В питоне вокруг словарей, например. Никто против этого не бунтует. Выбирайте соответствующий инструментарий.
0
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
21.05.2018, 11:11  [ТС] 12
Цитата Сообщение от woldemas Посмотреть сообщение
Можно в сетер засунуть, переменная изменяется - код выполняется.
А вообще, вы хотите модель прерываний как в микроконтроллерах что ли? Можно попытаться смоделировать с помощью двух потоков, наверное.
Можно по подробнее про сетер? Как это правильно по английски ? Я бы почитал.
Как это сделать с помощью двух потоков, тоже интересно.
0
Эксперт .NET
12505 / 8692 / 1310
Регистрация: 21.01.2016
Сообщений: 32,650
21.05.2018, 11:17 13
Bulky, вы так и не озвучили чего хотите добиться)

Цитата Сообщение от Bulky Посмотреть сообщение
Можно по подробнее про сетер?
C#
1
2
3
4
5
6
7
8
9
10
11
public class SomeClass
{
    private string _name;
    public string Name 
    {
        set { 
              _name = value;
              // выполняем произвольную логику;
        }
     } 
}
1
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
21.05.2018, 13:46  [ТС] 14
Цитата Сообщение от Usaga Посмотреть сообщение
Bulky, вы так и не озвучили чего хотите добиться)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Truck
        {
                        
            public short varInt1 { get; set; }
            public Boolean varBool0 { get; set; }
           
        }
 
 private void timer1_Tick(object sender, EventArgs e)
        {
            Truck tr = new Truck();
         
          
            var valueInt1 = tr.varInt1;       //здесь посредством таймера "мониторится" значение varInt1
                                                          //и присваивается valueInt1.
            var valueBool0  = tr.varBool0;  //Здесь посредством таймера "мониторится" значение varBool0
                                                         //и присваивается valueBool0
            
        }
 
// Здесь все работает превосходно. Обеим переменным можно сказать, динамически присваиваются
//текущие значения из класса Truck, с интервалом установленным в свойствах таймера.
В скобках метода таймера я могу работать с этими переменными, выполнять какие-то присвоения, сравнения и т.д.

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

Хотелось бы исполнить код (ниже). Но события у меня для него нет и не нужно. Нужно чтобы этот кусок исполнялся постоянно.
"Засунуть" опять в метод Timer -глупо. Я могу это сделать там же где это читается в timer1_tick, с таким же успехом.
Не может такого быть в таком мощном языке, что для этого весь исполняемый код нужно "пихать" в метод таймера.
Понимаю, когда нужно "читать" циклично переменные. Но для дальнейшей работы с ними неужто ничего не придумано кроме "кнопочно -мышинных" событий.

C#
1
2
3
4
5
6
7
8
 if (!valueBool0)
            {
 
 
                //do something
 
            }
 else return;
0
[Bicycle Reinventor]
332 / 270 / 109
Регистрация: 19.10.2011
Сообщений: 668
Записей в блоге: 2
21.05.2018, 13:47 15
Вангую предысторию:

Человек где-то выложил свой код, где у него есть подписка на событие button_click(s, e), и внутри хэндлера макаронный код на 350 строчек. Ему сказали: "Ай-ай-ай, так делать нельзя, нельзя привязывать код к событию". А он теперь сидит и думает: "Если не в подписчике на событие, то где мне размещать код?".
Ответ - вынести код в отдельный метод, а в хэндлере события вызывать этот метод.
1
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
21.05.2018, 13:56  [ТС] 16
Кроме "вангую" ничего не понял. И то догадка. Если по русски не можешь нормально. Напиши по английски. Возможно пойму.
0
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,311
21.05.2018, 14:05 17
Цитата Сообщение от Bulky Посмотреть сообщение
Хотелось бы исполнить код (ниже). Но события у меня для него нет и не нужно. Нужно чтобы этот кусок исполнялся постоянно.
Зачем он должен выполняться постоянно?
Я уже писал в соседней теме вам: реализуйте метод set свойства valueBool0 и при изменении делайте что хотите.

Не по теме:

Цитата Сообщение от Exerion Посмотреть сообщение
Вангую предысторию:
А мне кажется что человек когда-то программировал мк и пытается туже модель с бесконечным циклом и прерываниями перенести на C#

0
Эксперт .NET
12505 / 8692 / 1310
Регистрация: 21.01.2016
Сообщений: 32,650
21.05.2018, 14:06 18
Лучший ответ Сообщение было отмечено Bulky как решение

Решение

Цитата Сообщение от Bulky Посмотреть сообщение
Хотелось бы исполнить код (ниже). Но события у меня для него нет и не нужно. Нужно чтобы этот кусок исполнялся постоянно.
Ну так для этого есть отдельный поток, в котором вы можете завести вечный цикл (с проверкой условий выхода из оного, конечно) и вечно что-то делать.

Но у меня есть подозрение, что это не то, что вам надо. А что вам надо из примера выше не ясно.

Добавлено через 46 секунд
Bulky, вы можете словами описать логику, которую хотите получить? Без примеров странного кода, чисто словами, но подробно?
1
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
21.05.2018, 14:35  [ТС] 19
Создан класс и не один, но они подобные. Переменных разного типа задекларировано в нем много.
В методе timer_tick они читаются специальным отдельным методом, с интервалом, допустим 500 ms. И там же присваиваются другим переменным как в коде ниже.

[CSHARP] valueBool0 = tr.varBool0CSHARP]

Все описанное выше работает превосходно.
Каким способом мне работать дальше. Например, для упрощенки возьмем valueBool0?
Мне например нужно, где-то в теле кода
исполнить оператор if/ else Не раз, например при запуске программы, Не раз, например при инициализации формы, а постоянно, пока открыто окно программы или формы, как хотите это называйте.

Например
C#
1
2
3
4
5
6
7
8
if (!valueBool0)
            {
 
 
                do something// например, если varBool0 = false "красим" текст label1 в красный цвет.
 
            }
else return;
Надеюсь объяснился доходчиво...
0
Эксперт .NET
12505 / 8692 / 1310
Регистрация: 21.01.2016
Сообщений: 32,650
21.05.2018, 14:39 20
Bulky, что подразумевается под "постоянно"? В мире программирования нет такой вещи, как "постоянно". Есть или реакция на какое-то событие или некий вечный (или не очень) цикл. Ваше "постоянно" не особо хорошо описывает этот момент.
0
21.05.2018, 14:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2018, 14:39
Помогаю со студенческими работами здесь

Мне нужно написать коды к этим задачам.( Все пишут в Паскале). Но если можете мне в Бейсике. Пожалуйста
Мне нужно написать коды к этим задачам.( Все пишут в Паскале). Но если можете в Бейсике....

Проверьте, пожалуйста, код программы и исправьте, если нужно
Рассматривая байт как набор логических значений x7 x6 x5 x4 x3 x1 x0 (true -1, false - 0),...

Проверьте запрос: нужно вывести все ,где код темы =1
Всем привет, нужно вывести весь тест, где код темы =1 SELECT Вопросы., Ответы.ID AS , Вопросы....

Написать код дешифровщика для Delphi 7, если есть код шифровщика?
Вот всё что есть, нужно дополнить дешифровщик, заранее спасибо кто не пройдет стороной и не будет...

Мне нужно закомментировать код ниже(под словом закомментировать я подразумеваю объяснить работу каждой строки)
ВОТ ЗАДАЧА: После единых выпускных экзаменов по информатике в район пришла информация о том, какой...

Я нашел как написать sqlite код словаря=>мне дальше нужно его как то прикрутить к делфи
Желательно использовать LiteDac или компоненты которые подерживаются на андроиде -файл с базой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru