|
Как работать с тиками?
|
|||
---|---|---|---|
#18+
Есть такой код: ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2013, 02:22 |
|
Как работать с тиками?
|
|||
---|---|---|---|
#18+
Есть такой код: var dt1=DateTime.Now; var dt2=DateTime.Now; Если мы захотим постотреть, а чем-же эти переменные отличаются, то не найдем. Даже тики совпадают. Но т.к. процессор последовательно выполнит две эти операции, то как определить, что первая выполнилась раньше, чем вторая? Т.е. вопрос вот какой. Если есть две быстро выполняющиеся операции (например в разных потоках), то по какому признаку определить, какая из них запустилась первой? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2013, 02:27 |
|
Как работать с тиками?
|
|||
---|---|---|---|
#18+
Вы скажете, что потоки на разных ядрах могут запуститься одномоментно. Но алгоритм построен так: Создается поток. В нем что-то делается и тут-же поток закрывается. К примеру так: Task.Factory.StartNew(() => LogUI(str)); Так вот, стартуют эти потоки строго последовательно по мере выполнения основного модуля. Следовательно есть полная уверенность того, что операции строго разнесены по времени, как в примере с dt1 и dt2. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2013, 02:34 |
|
Как работать с тиками?
|
|||
---|---|---|---|
#18+
vlsaf, а собсна в чём именно вопрос. зачем сравнивать тики? для того что бы можно было определить кто папа первый можно использовать Код: c# 1. 2. 3. 4.
всё зависит от задачи/времени ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2013, 02:51 |
|
Как работать с тиками?
|
|||
---|---|---|---|
#18+
vlsaf, насколько я понимаю тебе нужно чтобы последовательно созданные таски выполнились тоже последовательно. Тут продолжения (continuations) должны помочь. How to: Chain Multiple Tasks with Continuations ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2013, 03:46 |
|
Как работать с тиками?
|
|||
---|---|---|---|
#18+
vlsafНо т.к. процессор последовательно выполнит две эти операции С чего вы это взяли? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2013, 09:58 |
|
Как работать с тиками?
|
|||
---|---|---|---|
#18+
vlsafто по какому признаку определить, какая из них запустилась первой? У потока есть имя. Присваивать ему Id.ToString(). А Id (int) вам уже посоветовали как менять - Interlocked.CompareExchange Ну и самый главный вопрос: ЗАЧЕМ вам знать, какой из потоков запустился первый? Если вы сможете нормально это объяснть, вам подскажут несколько путей решения ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2013, 10:00 |
|
Как работать с тиками?
|
|||
---|---|---|---|
#18+
Arm79Interlocked.CompareExchange Чуть поспешил, увеличивать - это Interlocked.Increment ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2013, 10:11 |
|
Как работать с тиками?
|
|||
---|---|---|---|
#18+
vlsaf Даже тики совпадают. В вашем случае тики совпадают потому, что операции выполнились в пределах одного кванта времени, а он устанавливается виндовс, и составляет 10 или 15 милисекунд (это не мало!) в зависимости от скорости железа. если вы в пределах одной функции хотите точнее замерить время - используйте Stopwatch. Не уверен, что его можно использовать в разных потоках, но вдруг... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2013, 12:13 |
|
Как работать с тиками?
|
|||
---|---|---|---|
#18+
Любопытно! Компилируется без ошибок? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2013, 13:48 |
|
Как работать с тиками?
|
|||
---|---|---|---|
#18+
Belavik, )) классный код у ТС, компилируется на C#, Java, T-SQL, PL-SQL, Bash, JavaScript, VBA и множестве других языков без ошибок. Самое интересное, работает (в смысле сразу завершается) одинакого на всех языках. Это настоящее мультиплатформенное решение. ОС, архитектура камня, язык... ничего не имеет значения, везде все ок! Кроме того, потрясающее быстродействие. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2013, 14:49 |
|
Как работать с тиками?
|
|||
---|---|---|---|
#18+
Andrew1411Belavik, )) классный код у ТС, компилируется на C#, Java, T-SQL, PL-SQL, Bash, JavaScript, VBA и множестве других языков без ошибок. Самое интересное, работает (в смысле сразу завершается) одинакого на всех языках. Это настоящее мультиплатформенное решение. ОС, архитектура камня, язык... ничего не имеет значения, везде все ок! Кроме того, потрясающее быстродействие. Я посмотрел, автор на Java-то не пишет! Вдвойне удивительно, что код на .Net идет без ошибок под Java. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2013, 14:52 |
|
Как работать с тиками?
|
|||
---|---|---|---|
#18+
vlsaf, есть такое решение: ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2013, 14:53 |
|
Как работать с тиками?
|
|||
---|---|---|---|
#18+
vlsaf, почему тики (временые интервалы вам не нужны) - ответили в другой теме. по первичному вопросу: либо привыкнуть, либо лечиться. Лечение нернвного тика: Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2013, 14:54 |
|
|
start [/forum/topic.php?fid=20&msg=38488256&tid=1403569]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 142ms |
0 / 0 |