Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 2
Регистрация: 20.05.2013
Сообщений: 76
1

Ускорить вызов события

24.12.2013, 23:55. Показов 1418. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Существует высокоскоростной метод который каждый такт вызывает событие типа:
C#
1
2
public delegate void MyEvent(double Procent);
        public event MyEvent Procent;
Проблема в том что один только вызов этого события (даже если на него ничто не подписано) занимает ~5 - 15 ms. Возможно ли ускорить вызов события?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2013, 23:55
Ответы с готовыми решениями:

Вызов события в С#
Как вызвать(и выполнить) событие контрола(он не имеет фокуса)? :confused: btnStart.Click += new...

Вызов асинхронного метода из события
Присваиваю событию ссылку на метод _mainView.StartBinaryTradeClickEventRaised += new...

Вызов события у объекта
Всем привет ) Подскажите пожалуйста как мне вызвать например событие у listbox.items...

Повторный вызов события
У меня есть Listbox c коллекцией элементов, при выборе элемента вызывается событие...

1
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
25.12.2013, 17:46 2
Откажитесь от событий используйте интерфейсы, например вместо такого

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
public class TestEvent
    {
        public delegate void MyEvent(double Procent);
        public event MyEvent Procent;
 
        public void OnProcent()
        {
            MyEvent handler = Procent;
            if (handler != null) handler(0);
        }
    }
 
    public class Test
    {
        readonly TestEvent testEvent = new TestEvent();
        public Test()
        {
            testEvent.Procent += testEvent_Procent;
        }
 
        public void Go()
        {
            while (true)
            {
                testEvent.OnProcent();
            }
        }
 
        void testEvent_Procent(double Procent)
        {
            throw new NotImplementedException();
        }
    }
Вот такое

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
public class TestEvent
    {
        private readonly ITest _test;
 
        public TestEvent(ITest test)
        {
            _test = test;
        }
 
        public void OnProcent()
        {
            _test.Procent(0);
        }
    }
 
    public interface ITest
    {
        void Procent(double Procent);
    }
 
    public class Test : ITest
    {
        private readonly TestEvent testEvent;
        public Test()
        {
            testEvent = new TestEvent(this);
        }
 
        public void Go()
        {
            while (true)
            {
                testEvent.OnProcent();
            }
        }
 
        public void Procent(double Procent)
        {
            throw new NotImplementedException();
        }
    }
1
25.12.2013, 17:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2013, 17:46
Помогаю со студенческими работами здесь

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

Вызов единственного обработчика события при переопределении
Все привет! Вопрос по теории. Можно ли как-то сделать так, чтобы при перекрытии обработчика события...

User control вызов события вложенного элемента
Всем привет. Есть user control <StackPanel PreviewKeyDown="StackPanel_PreviewKeyDown"> ...

Вызов события из другого события по нажатию клавиши
Всем привет! Есть кнопка на Windows.Forms, к ней привязано событие. Хочется, чтобы еще и по нажатию...


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

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