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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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


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