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

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

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

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

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

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

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

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

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

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

43
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
21.05.2018, 14:51  [ТС] 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от Usaga Посмотреть сообщение
Bulky, что подразумевается под "постоянно"? В мире программирования нет такой вещи, как "постоянно". Есть или реакция на какое-то событие или некий вечный (или не очень) цикл. Ваше "постоянно" не особо хорошо описывает этот момент.
Так как переменные динамически изменяются и каждые 500 ms читаются, то изменения с этим же интервалом и присваиваются. Например нашей varBool1.
Если я "впихну" код оператора сравнения в событие load_ form этот код исполнится толко один раз и дальнейшие динамические изменения переменной varBool1 будут программе "по баобабу". Что собственно и происходит. В методе Main Form() тоже самое.

В том то и вопрос! Куда "засунуть" код? Кроме события таймера. В событие таймера, где собственно и "читаются" переменные я пробовал. Это работает.
Но пихать весь код программы в событие таймера выглядит как-то очень непрофессионально. Должны быть другие "ходы".
0
182 / 145 / 94
Регистрация: 30.07.2013
Сообщений: 579
21.05.2018, 15:00 22
Лучший ответ Сообщение было отмечено Bulky как решение

Решение

Цитата Сообщение от Bulky Посмотреть сообщение
В том то и вопрос! Куда "засунуть" код? Кроме события таймера.
ответили же не раз. В цикл, вечный или условно вечный.
А если при этом надо чтобы основной поток не блокировался, то цикл в отдельном потоке запускается
1
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
21.05.2018, 15:13  [ТС] 23
Цитата Сообщение от meridbt Посмотреть сообщение
ответили же не раз. В цикл, вечный или условно вечный.
А если при этом надо чтобы основной поток не блокировался, то цикл в отдельном потоке запускается
Так никто конкретно не говорил! Наверное ты да Usaga первые "доперли" в чем проблема.
Там в соседней ветке и здесь где-то в начале "зуб" давали, что без событий не обойтись. Это наверное те, кто разные вариации "калькуляторов" и "саперов" с утра до вечера пишут. Больше ничего не знают.

Спасибо Usaga и meridbt

Добавлено через 9 минут
Собственно я уже пробовал поток для других целей. Сейчас займусь тестами.
0
[Bicycle Reinventor]
332 / 270 / 109
Регистрация: 19.10.2011
Сообщений: 668
Записей в блоге: 2
21.05.2018, 15:14 24
лолище.

Писать отдельный поток, который следит за состоянием переменных - то ещё изобретение.

Поле класса, за которым нужно следить, сделать private, к нему написать public сеттер, внутри которого вызывать событие об изменении состояния поля. Кому нужно - подпишутся на событие и будут получать уведомления об изменении мгновенно, а не через 500 мс когда поток додумается до проверки.
3
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
21.05.2018, 15:16  [ТС] 25
Цитата Сообщение от Exerion Посмотреть сообщение
лолище.

Писать отдельный поток, который следит за состоянием переменных - то ещё изобретение.

Поле класса, за которым нужно следить, сделать private, к нему написать public сеттер, внутри которого вызывать событие об изменении состояния поля. Кому нужно - подпишутся на событие и будут получать уведомления об изменении мгновенно, а не через 500 мс когда поток додумается до проверки.
Браво! Еще один Не писатель "калькуляторов". Круть! Тоже попробую.

Спасибо.

Прощаюсь до вечера. Нужно тестировать "насоветанное"
0
Эксперт .NET
6510 / 4086 / 1606
Регистрация: 09.05.2015
Сообщений: 9,553
21.05.2018, 15:18 26
Цитата Сообщение от Bulky Посмотреть сообщение
Так как переменные динамически изменяются и каждые 500 ms читаются, то изменения с этим же интервалом и присваиваются.
Каким образом они изменяются? Не сами по себе же... Почему нельзя создать событие изменения этих переменных? Зачем нужно каждые 500 мс что-то проверять, если можно делать это по факту изменения значения...
0
182 / 145 / 94
Регистрация: 30.07.2013
Сообщений: 579
21.05.2018, 15:22 27
Bulky,

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
using System;
using System.Threading;
using System.Windows.Forms;
 
namespace Bulky
{
    public partial class Form1 : Form
    {
 
        public bool IsRunning { get; set; }
        public delegate void STDelegate(Label lbl, string text);
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            IsRunning = true;
            Thread background = new Thread(BackGround);
            background.Start();
        }
 
        private void BackGround()
        {
            while (IsRunning)
            {
                SetTime(label1, DateTime.Now.ToString("HH:mm:ss"));
                Thread.Sleep(100);
            }
        }
 
        private void SetTime(Label lbl, string text)
        {
            try
            {
                if (lbl.InvokeRequired)
                {
                    STDelegate stDelegate = new STDelegate(SetTime);
                    lbl.Invoke(stDelegate, new object[] { lbl, text });
                }
                else
                {
                    lbl.Text = text;
                }
            }
            catch { }            
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            IsRunning = false;
        }
    }
}
1
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
21.05.2018, 15:22  [ТС] 28
@Someone007,
не заморачивайся и спасибо тебе за предыдущие ответы. Это top secret information. Оставим это за рамками этой дискуссии.
Как уже писал выше, все , что связано с чтением is working great.
0
Эксперт .NET
12505 / 8692 / 1310
Регистрация: 21.01.2016
Сообщений: 32,650
21.05.2018, 16:29 29
Bulky, если я правильно понял вашу хотелку, то проверку нужно выполнять там, где данные изменяются - в событии. Код, внезапно, можно поделить на методы и классы и в событии, где данные изменяются, вызывать метод с проверкой. Вам это уже предлагали и тоже не раз. И про сеттер уже говорили (я пример даже приводил) и про вызов метода.

Из того, что я наконец смог понять, таймеры и потоки тут вообще никаким боком и уже точно на "профессиональное" решение не тянут.

Добавлено через 1 минуту

Не по теме:

И прекратите размером шрифта баловаться. Это не добавляет выразительности тексту, просто детский садик.

1
Эксперт .NET
5545 / 4308 / 1218
Регистрация: 12.10.2013
Сообщений: 12,356
Записей в блоге: 2
21.05.2018, 16:41 30
Вторая страница темы, а ясности совсем мало...
Тс, исходя из того, что вы рассказывали, могу предложить вам свою модель (даже две).
Вариант №1. Стартует новый поток, в котором крутится цикл (вечный или условно вечный). Он что-то там делает, вычисляет... В классе, метод которого крутится в потоке есть (внезапно!) событие. В нужный момент в рабочем потоке, при вычислении, когда нам нужно сообщить что-то другому коду, бросается это событие. А внешний код подписан на это событие и как-то реагирует.
Вариант №2. То же самое, только потока уже два, один-рабочий, как и выше, а второй после запуска стоит и ждет сигнала, чтобы что-то делать. Тут все основано не на событиях, а на межпотоковых сигнализирующих конструкциях (ManualResetEvent/AutoResetEvent).
Выбирайте, что вам больше нравится.
0
Эксперт .NET
12505 / 8692 / 1310
Регистрация: 21.01.2016
Сообщений: 32,650
21.05.2018, 16:47 31
insite2012, насколько я смог понять ТС-а, ему нужно делать проверки изменяемых в событии переменных, но наличие кода этих проверок в самом событии он причислил к непрофессонализму и ищет "красивое" решение.
0
Эксперт .NET
5545 / 4308 / 1218
Регистрация: 12.10.2013
Сообщений: 12,356
Записей в блоге: 2
21.05.2018, 16:50 32
Цитата Сообщение от Usaga Посмотреть сообщение
ищет "красивое" решение.
Возможно. Но не стоит забывать про KISS.
0
Эксперт .NET
12505 / 8692 / 1310
Регистрация: 21.01.2016
Сообщений: 32,650
21.05.2018, 16:55 33
insite2012, таймера и потоки там, где можно вызвать один метод в сеттере - это точно не про KISS.
0
Эксперт .NET
5545 / 4308 / 1218
Регистрация: 12.10.2013
Сообщений: 12,356
Записей в блоге: 2
21.05.2018, 17:07 34
Цитата Сообщение от Usaga Посмотреть сообщение
это точно не про KISS.
Так я как вариант, опять же, сама идея довольно мутная, не до конца понятно, что ТС-у нужно)))
0
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
21.05.2018, 17:34  [ТС] 35
Цитата Сообщение от Usaga Посмотреть сообщение
Bulky, если я правильно понял вашу хотелку, то проверку нужно выполнять там, где данные изменяются - в событии.

Добавлено через 1 минуту

Не по теме:

И прекратите размером шрифта баловаться. Это не добавляет выразительности тексту, просто детский садик.

Хотелка это "калькулятор", а у меня суровая действительность. В событии timer_Tick там где код читается и изменяется, я сделал уже месяц назад.
И это работает.
Но обрабатывать в этом событии сотню переменных, выглядит совсем непрофессионально. Хотя, чувствую другого выхода нет.
0
Эксперт .NET
12505 / 8692 / 1310
Регистрация: 21.01.2016
Сообщений: 32,650
21.05.2018, 17:38 36
Bulky, какой "калькулятор"? Какая "действительность"? Уже третья страница, а вы так и не смогли объяснить, что вам надо.
0
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
21.05.2018, 17:48  [ТС] 37
Цитата Сообщение от insite2012 Посмотреть сообщение
Вторая страница темы, а ясности совсем мало...
Тс, исходя из того, что вы рассказывали, могу предложить вам свою модель (даже две).
Вариант №1. Стартует новый поток, в котором крутится цикл (вечный или условно вечный). Он что-то там делает, вычисляет... В классе, метод которого крутится в потоке есть (внезапно!) событие. В нужный момент в рабочем потоке, при вычислении, когда нам нужно сообщить что-то другому коду, бросается это событие. А внешний код подписан на это событие и как-то реагирует.
Вариант №2. То же самое, только потока уже два, один-рабочий, как и выше, а второй после запуска стоит и ждет сигнала, чтобы что-то делать. Тут все основано не на событиях, а на межпотоковых сигнализирующих конструкциях (ManualResetEvent/AutoResetEvent).
Выбирайте, что вам больше нравится.
Неужели моя задача так сложна, что вы не можете понять, что мне нужно. Уже наверное десятый... Элементарные же вещи рассказываю.

Добавлено через 2 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
Bulky, какой "калькулятор"? Какая "действительность"? Уже третья страница, а вы так и не смогли объяснить, что вам надо.
Как еще объяснить, элементарные ведь вещи рассказываю. Или вы так и не смогли понять...
0
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,311
21.05.2018, 17:50 38
Цитата Сообщение от Bulky Посмотреть сообщение
Так как переменные динамически изменяются и каждые 500 ms читаются, то изменения с этим же интервалом и присваиваются. Например нашей varBool1. Если я "впихну" код оператора сравнения в событие load_ form этот код исполнится толко один раз и дальнейшие динамические изменения переменной varBool1 будут программе "по баобабу". Что собственно и происходит. В методе Main Form() тоже самое.
Вот это ваша проблема? У нее элементарное решение - реализуйте сеттер для вашего поля varBool1 .
0
-22 / 28 / 2
Регистрация: 17.03.2018
Сообщений: 758
21.05.2018, 17:51  [ТС] 39
Цитата Сообщение от woldemas Посмотреть сообщение
Вот это ваша проблема? У нее элементарное решение - реализуйте сеттер для вашего поля.
Будь другом "прилепи" setter к коду, что в начале #14, да с комментами. Я не знаю как...Раз все так setter нахваливают.
0
Эксперт .NET
12505 / 8692 / 1310
Регистрация: 21.01.2016
Сообщений: 32,650
21.05.2018, 17:54 40
Цитата Сообщение от Bulky Посмотреть сообщение
Как еще объяснить, элементарные ведь вещи рассказываю. Или вы так и не смогли понять...
Вы ничего не рассказываете. Вы одно по одному говорите: надо, чтобы код выполнялся постоянно вне события. Что под этим подразумевается вы так и не объяснили. А десять раз одно и тоже говорит не объяснение.

Добавлено через 45 секунд
Цитата Сообщение от Bulky Посмотреть сообщение
Будь другом "прилепи" setter к коду, что в начале. Я не знаю как...
Пример кому был дан?
0
21.05.2018, 17:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2018, 17:54
Помогаю со студенческими работами здесь

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

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

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

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

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

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


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

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