Таймер выполнения C#

infosimple

Client
Регистрация
01.01.2015
Сообщения
427
Благодарностей
61
Баллы
28
Ситуация следующая, работает кубик C# n-ое количество времени. Можно ли в самом кубике установить таймер, так чтобы через указанное в таймере времени кубик прекратил работу не доделав работу до конца? Если это реально, то пните меня пожалуйста в нужном направление. Спасибо.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
не знаю есть ли прямые методы. Но если там цыкл, можно сопоставлять даты в каждой иттерации
 
  • Спасибо
Реакции: infosimple

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Засекайте время. Переводите в Unixtime формат.
В каждой итерации цикла берите текущее время, переводите в Unixtime и вычитанием получайте прошедшее время. Полученный результат можно сравнивать с неким заданным значением и по его достижении/превышении выходить с сошибкой, или завершать цикл.

http://zennolab.com/discussion/search/1929111/?q=unix time&o=date
 
  • Спасибо
Реакции: infosimple

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
  • Спасибо
Реакции: CSS и infosimple

infosimple

Client
Регистрация
01.01.2015
Сообщения
427
Благодарностей
61
Баллы
28
А как сделать так чтобы эта конструкция работала?
Код:
int s = (int)(DateTime.Now.Subtract(new DateTime(project.Variables["startime"].Value))).TotalSeconds;
return s;
 

Engineer

Новичок
Регистрация
21.01.2016
Сообщения
2
Благодарностей
1
Баллы
1
Ситуация следующая, работает кубик C# n-ое количество времени. Можно ли в самом кубике установить таймер, так чтобы через указанное в таймере времени кубик прекратил работу не доделав работу до конца? Если это реально, то пните меня пожалуйста в нужном направление. Спасибо.
Можете попробовать выполнить ваш код в отдельном потоке
Код:
 Task<string> task = new Task<string>(() =>
            {
                // Your code
                return "value";
            });

            task.Start();
            task.Wait(5000);

            if (task.IsCompleted)
            {
                if (task.Exception != null)
                {
                    throw task.Exception;
                }
                else
                {
                    return task.Result;
                }
            }

            return string.Empty;
task.Wait(5000); - Ожидание 5 секунд
 
  • Спасибо
Реакции: artur23

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