powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / System.Timer - насколько он оптимально устроен изнутри ?
13 сообщений из 13, страница 1 из 1
System.Timer - насколько он оптимально устроен изнутри ?
    #38477138
MsSql_Study
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет.

Нутром чую, что все реализованно хорошо. Но не могу найти подробностей.

Подскажите пожалуйста статью, где можно было бы почитать насколько оптимально реализован System.Timer. Пожалуйста.

Я помню, что где-то читал, что там аж ядерные объекты (нулевого кольца) используются, настолько там все оптимально. Но не уверен, что это относилось к NET.

Грубо говоря нужно узнать что делает таймер, пока не пришло время, насколько он нагружает систему - моя огромная уверенность говорит о том, что он скорее всего вообще никак не нагружает систему - вот прямо вообще ! Но нужны подробности.

Знает кто ссылку на такую статью, поделитесь пожалуйста.


Спасибо !
...
Рейтинг: 0 / 0
System.Timer - насколько он оптимально устроен изнутри ?
    #38477206
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsSql_Study,
не бойтесь, устроен оптимально, в интервале между вызовами функции, ваше приложение ничего не делает, ничего там не тикает.
ищите winapi -settimer()
...
Рейтинг: 0 / 0
System.Timer - насколько он оптимально устроен изнутри ?
    #38477265
MsSql_Study
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотелось именно детали узнать, хотя бы примерно )
Что делает система, как я понимаю там наверное через Event'ы реализовано, или еще что-то. Явно, что таймер ничего там у себя не крутит а абсолютно пассивно ожидает.
...
Рейтинг: 0 / 0
System.Timer - насколько он оптимально устроен изнутри ?
    #38477319
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsSql_Study,

меньше фантазируйте, больше MSDN читайте
...
Рейтинг: 0 / 0
System.Timer - насколько он оптимально устроен изнутри ?
    #38478326
Фотография _=ДОБРЫНЯ=_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я использую 4-е таких таймера одновременно. пока не протикало - нагрузки нет
...
Рейтинг: 0 / 0
System.Timer - насколько он оптимально устроен изнутри ?
    #38478442
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsSql_StudyПривет.

Нутром чую, что все реализованно хорошо. Но не могу найти подробностей.

Подскажите пожалуйста статью, где можно было бы почитать насколько оптимально реализован System.Timer. Пожалуйста.

Я помню, что где-то читал, что там аж ядерные объекты (нулевого кольца) используются, настолько там все оптимально. Но не уверен, что это относилось к NET.

Грубо говоря нужно узнать что делает таймер, пока не пришло время, насколько он нагружает систему - моя огромная уверенность говорит о том, что он скорее всего вообще никак не нагружает систему - вот прямо вообще ! Но нужны подробности.

Знает кто ссылку на такую статью, поделитесь пожалуйста.


Спасибо !
Во-первых, класса System.Timer в природе не существует. Есть System.Timers.Timer , есть System.Threading.Timer , есть еще энное количество связанных с GUI - типа System.Windows.Forms.Timer .
Во-вторых, System.Timers.Timer инкапсулирует и работает внутри себя с System.Threading.Timer. У последнего основные методы работы (private) объявлены (в базовом классе TimerBase) так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
[SecurityCritical]
[MethodImpl(MethodImplOptions.InternalCall)]
private void AddTimerNative(object state, uint dueTime, uint period, ref StackCrawlMark stackMark);

[SecurityCritical]
[MethodImpl(MethodImplOptions.InternalCall)]
private bool ChangeTimerNative(uint dueTime, uint period);

[SecurityCritical]
[MethodImpl(MethodImplOptions.InternalCall)]
private bool DeleteTimerNative(SafeHandle notifyObject);


т.е. реализованы внутри CLR. Вот тут люди разбирали эти внутренности:
Код: plaintext
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.
FCIMPL6(VOID, TimerNative::CorCreateTimer, TimerBaseNative* pThisUNSAFE, Object* delegateUNSAFE, Object* stateUNSAFE, INT32 dueTime, INT32 period, StackCrawlMark* stackMark)
{
    struct _gc
    {
        TIMERREF pThis;
        OBJECTREF delegate;
        OBJECTREF state;
    } gc;
    gc.pThis = (TIMERREF) pThisUNSAFE;
    gc.delegate = (OBJECTREF) delegateUNSAFE;
    gc.state = (OBJECTREF) stateUNSAFE;
    HELPER_METHOD_FRAME_BEGIN_NOPOLL();
    GCPROTECT_BEGIN(gc);
    HELPER_METHOD_POLL();
    //-[autocvtpro]-------------------------------------------------------

    THROWSCOMPLUSEXCEPTION();

    Thread* pCurThread = GetThread();
    _ASSERTE( pCurThread);

    AppDomain* appDomain = pCurThread->GetDomain();
    _ASSERTE(appDomain);

    DelegateInfo* delegateInfo = DelegateInfo::MakeDelegateInfo(appDomain,
                                                                gc.delegate,                                                                
                                                                gc.state,
                                                                NULL,
                                                                NULL);
    
...


Если есть желание - здесь можно взять исходники CLI версии 2.0, и порыться в них на предмет дальнейшего разбирательства.
...
Рейтинг: 0 / 0
System.Timer - насколько он оптимально устроен изнутри ?
    #38479088
MsSql_Study
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сон Веры Павловны,

Спасибо.
...
Рейтинг: 0 / 0
System.Timer - насколько он оптимально устроен изнутри ?
    #38480238
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
MsSql_StudyХотелось именно детали узнать, хотя бы примерно )
Просто любопытно, зачем?
...
Рейтинг: 0 / 0
System.Timer - насколько он оптимально устроен изнутри ?
    #38481136
Чотакакта
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsSql_StudyЗнает кто ссылку на такую статью, поделитесь пожалуйста. Timers in .Net
...
Рейтинг: 0 / 0
System.Timer - насколько он оптимально устроен изнутри ?
    #38482593
MsSql_Study
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2MsSql_StudyХотелось именно детали узнать, хотя бы примерно )
Просто любопытно, зачем?

Доказать одному человеку что 2 таймера в приложении с 2мя потоками (которые взаимодействуют друг с другом), это совершенно не смертельно, и не съест сколько либо заметных ресурсов.
...
Рейтинг: 0 / 0
System.Timer - насколько он оптимально устроен изнутри ?
    #38482867
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsSql_StudyДоказать одному человеку
в игнор отправь, медицина бессильна
...
Рейтинг: 0 / 0
System.Timer - насколько он оптимально устроен изнутри ?
    #38484078
MsSql_Study
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,

Очень Вы жестоки )
Сомнения у программиста, это не так уж и плохо. Если чего то не знаешь досконально сам лично, то есть причины сомневаться
"а вдруг, в этом черном ящике, куда я заглянуть не могу, скрываются грабли. Откуда мне знать ? Не зная, я не могу положится и писать критичный код, опирающийся на этот черный ящик. Сомнения сомнения".

В целом то все ок, проект мы сделали на таймерах таки, Убедить не сложно было, но только логикой и верой, что в Microsoft работают профессионалы своего дела :)
...
Рейтинг: 0 / 0
System.Timer - насколько он оптимально устроен изнутри ?
    #38484137
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsSql_StudyЕсли чего то не знаешь досконально сам лично, то есть причины сомневаться
ну возьми дизассемблер и посмотри, развлекаюсь периодически как .net ным так и нативным
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / System.Timer - насколько он оптимально устроен изнутри ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]