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

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

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

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

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

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


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

меньше фантазируйте, больше MSDN читайте
...
Рейтинг: 0 / 0
26.11.2013, 14:51
    #38478326
_=ДОБРЫНЯ=_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Timer - насколько он оптимально устроен изнутри ?
Я использую 4-е таких таймера одновременно. пока не протикало - нагрузки нет
...
Рейтинг: 0 / 0
26.11.2013, 15:29
    #38478442
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Timer - насколько он оптимально устроен изнутри ?
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
26.11.2013, 22:28
    #38479088
MsSql_Study
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Timer - насколько он оптимально устроен изнутри ?
Сон Веры Павловны,

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

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

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

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


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