пауза с высокой точностью

misterio

Пользователь
Регистрация
06.09.2014
Сообщения
92
Благодарностей
20
Баллы
8
сервер лимитирует количество запросов к API в секунду. а скорость работы шаба весьма критична.

вопрос:
как получать текущее время с точностью до милисекунд?
и как реализовать паузу с точностью до милисекунд?
 

misterio

Пользователь
Регистрация
06.09.2014
Сообщения
92
Благодарностей
20
Баллы
8
нашел гуглом что есть такая штука как Environment.TickCount
напишите кто нить как в C# получить ее значение на выход.

ну и плюс задержка интересна конечно.
 

misterio

Пользователь
Регистрация
06.09.2014
Сообщения
92
Благодарностей
20
Баллы
8
блин.
дайте права редактировать свои посты в течение хотя бы 5ти минут.

короче получить время от старта системы в мс я смог:
Код:
int result = Environment.TickCount & Int32.MaxValue;
return result;
как задержку реализовать?
 

Irbis

Client
Регистрация
02.03.2014
Сообщения
195
Благодарностей
120
Баллы
43
Код:
int i = 1000;
// i - время в миллисекундах.
Thread.Sleep(i);
 

misterio

Пользователь
Регистрация
06.09.2014
Сообщения
92
Благодарностей
20
Баллы
8
не пашет
Ошибка в действии "CS0103" "The name 'Thread' does not exist in the current context". [Строка: 3; Cтолбец: 1]
 

Irbis

Client
Регистрация
02.03.2014
Сообщения
195
Благодарностей
120
Баллы
43
Так попробуйте:
Код:
System.Threading.Thread.Sleep(i);
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
786
Баллы
113
у Environment.TickCount погрешность в 15.6 мс. То есть в течении 15.6 мс разницей во времени между двумя событиями будет 0. Соответственно, вам нужно будет ждать 31.2 мс, чтобы увиедть хоть какую-то разницу. Вобще лучше не делать паузу меньше 16 мс.

Так же стоит учесть, что у сервера другие расчеты. Скорей всего он считает время между пришедшими запросами, а вы считаете время между ушедшими. Чтобы увидеть разницу - во времени - пропингуйте хотябы для начала сам сервер. Но это также не точная информация. Я не разбраюсь в этом но на вашем месте я бы не заморачивался и сделал бы просто дополнительный запас по времени.
 
Последнее редактирование:

misterio

Пользователь
Регистрация
06.09.2014
Сообщения
92
Благодарностей
20
Баллы
8
Так попробуйте:
тоже самое
Ошибка в действии "CS0103" "The name 'i' does not exist in the current context". [Строка: 1; Cтолбец: 31]

у Environment.TickCount погрешность в 15.6 мс. То есть в течении 15.6 мс разницой будет 0. Соответственно, вам нужно будет ждать 31.2 мс, чтобы увиедть хоть какую-то разницу. Вобще лучше не делать паузу меньше 16 мс.
учту. хотя мне кажется это не у Environment.TickCount погрешность в 15.6 мс а у ZP скорость выполнения команд не бесконечная. в любом случае задержка менее 50мс не понадобится с этим сервисом... хотя х.з. что нужно будет в будущем.
 

Irbis

Client
Регистрация
02.03.2014
Сообщения
195
Благодарностей
120
Баллы
43
тоже самое
Ошибка в действии "CS0103" "The name 'i' does not exist in the current context". [Строка: 1; Cтолбец: 31]
Я имел ввиду заменить Thread.Sleep(i); на System.Threading.Thread.Sleep(i);
Полный пример:
Код:
int i = 1000;
// i - время в миллисекундах.
System.Threading.Thread.Sleep(i);
 
  • Спасибо
Реакции: misterio

misterio

Пользователь
Регистрация
06.09.2014
Сообщения
92
Благодарностей
20
Баллы
8
теперь работает.
Спасибо!
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 522
Благодарностей
991
Баллы
113
может лучше взять др. сервер?
 

misterio

Пользователь
Регистрация
06.09.2014
Сообщения
92
Благодарностей
20
Баллы
8
другой сервер вк?
я с API VK работаю. он лимитирует обращения к нему а не мой сервер :bm:
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)