powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как работать с тиками?
14 сообщений из 14, страница 1 из 1
Как работать с тиками?
    #38488256
vlsaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой код:
...
Рейтинг: 0 / 0
Как работать с тиками?
    #38488259
vlsaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой код:
var dt1=DateTime.Now;
var dt2=DateTime.Now;

Если мы захотим постотреть, а чем-же эти переменные отличаются, то не найдем. Даже тики совпадают. Но т.к. процессор последовательно выполнит две эти операции, то как определить, что первая выполнилась раньше, чем вторая?

Т.е. вопрос вот какой. Если есть две быстро выполняющиеся операции (например в разных потоках), то по какому признаку определить, какая из них запустилась первой?
...
Рейтинг: 0 / 0
Как работать с тиками?
    #38488261
vlsaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы скажете, что потоки на разных ядрах могут запуститься одномоментно. Но алгоритм построен так: Создается поток. В нем что-то делается и тут-же поток закрывается. К примеру так:
Task.Factory.StartNew(() => LogUI(str));

Так вот, стартуют эти потоки строго последовательно по мере выполнения основного модуля. Следовательно есть полная уверенность того, что операции строго разнесены по времени, как в примере с dt1 и dt2.
...
Рейтинг: 0 / 0
Как работать с тиками?
    #38488268
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlsaf,

а собсна в чём именно вопрос. зачем сравнивать тики?
для того что бы можно было определить кто папа первый можно использовать
Код: c#
1.
2.
3.
4.
lock
System.Collections.Concurrent.ConcurrentStack
System.Threading.Interlocked.CompareExchange
.....


всё зависит от задачи/времени
...
Рейтинг: 0 / 0
Как работать с тиками?
    #38488273
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlsaf, насколько я понимаю тебе нужно чтобы последовательно созданные таски выполнились тоже последовательно. Тут продолжения (continuations) должны помочь.

How to: Chain Multiple Tasks with Continuations
...
Рейтинг: 0 / 0
Как работать с тиками?
    #38488388
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlsafНо т.к. процессор последовательно выполнит две эти операции
С чего вы это взяли?
...
Рейтинг: 0 / 0
Как работать с тиками?
    #38488392
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlsafто по какому признаку определить, какая из них запустилась первой?

У потока есть имя. Присваивать ему Id.ToString(). А Id (int) вам уже посоветовали как менять - Interlocked.CompareExchange


Ну и самый главный вопрос: ЗАЧЕМ вам знать, какой из потоков запустился первый? Если вы сможете нормально это объяснть, вам подскажут несколько путей решения
...
Рейтинг: 0 / 0
Как работать с тиками?
    #38488404
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Interlocked.CompareExchange
Чуть поспешил, увеличивать - это Interlocked.Increment
...
Рейтинг: 0 / 0
Как работать с тиками?
    #38488631
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlsaf Даже тики совпадают.

В вашем случае тики совпадают потому, что операции выполнились в пределах одного кванта времени, а он устанавливается виндовс, и составляет 10 или 15 милисекунд (это не мало!) в зависимости от скорости железа.

если вы в пределах одной функции хотите точнее замерить время - используйте Stopwatch.

Не уверен, что его можно использовать в разных потоках, но вдруг...
...
Рейтинг: 0 / 0
Как работать с тиками?
    #38488809
Фотография Belavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любопытно! Компилируется без ошибок?
...
Рейтинг: 0 / 0
Как работать с тиками?
    #38488953
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Belavik,

)) классный код у ТС, компилируется на C#, Java, T-SQL, PL-SQL, Bash, JavaScript, VBA и множестве других языков без ошибок. Самое интересное, работает (в смысле сразу завершается) одинакого на всех языках. Это настоящее мультиплатформенное решение. ОС, архитектура камня, язык... ничего не имеет значения, везде все ок! Кроме того, потрясающее быстродействие.
...
Рейтинг: 0 / 0
Как работать с тиками?
    #38488963
transpose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew1411Belavik,

)) классный код у ТС, компилируется на C#, Java, T-SQL, PL-SQL, Bash, JavaScript, VBA и множестве других языков без ошибок. Самое интересное, работает (в смысле сразу завершается) одинакого на всех языках. Это настоящее мультиплатформенное решение. ОС, архитектура камня, язык... ничего не имеет значения, везде все ок! Кроме того, потрясающее быстродействие.
Я посмотрел, автор на Java-то не пишет! Вдвойне удивительно, что код на .Net идет без ошибок под Java.
...
Рейтинг: 0 / 0
Как работать с тиками?
    #38488966
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlsaf,

есть такое решение:
...
Рейтинг: 0 / 0
Как работать с тиками?
    #38488968
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlsaf,

почему тики (временые интервалы вам не нужны) - ответили в другой теме.

по первичному вопросу:
либо привыкнуть, либо лечиться.

Лечение нернвного тика:
Код: plaintext
1.
2.
Этиотропная терапия — лечение направленное на устранение причины заболевания (при вторичных тиках).
Симптоматическая терапия — применение препаратов направленное на устранение тика. Чаще применяются нейролептики (галоперидол) и ботокс.
Психотерапия — поведенческая терапия направленная на выработку уверенности, снятия тревожности и умения контролировать симптом.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как работать с тиками?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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