Доброго времени суток.
Прошу помочь разобраться в решении следующей проблемы.
Есть консольное приложение в нём нужно реализовать действия по таймеру.
Логика действий следующая: При старте приложения запускается таймер с интервалом в 1 час. Пока работает таймер, в параллель с ним работает цикл на проверку запущенного процесса. Если процесс за этот час не был завершен, то приложение закрывается, а если процесс завершился, то таймер останавливается и запускается последовательность действий.
В данный момент я реализовала следующее:
public static void Main(string[] args)
{
Timer t = new Timer(ComputeBoundOp, 1, 0, 1000);
Thread.Sleep(100000);
t.Dispose();
while (true)
{
var processes = Process.GetProcessesByName("ProcessName");
if (processes.Length > 0)
processes[0].WaitForExit();
else
break;
}
//Последовательность других действий.
}
private static void ComputeBoundOp(Object state)
{
Console.WriteLine("In ComputeBoundOp: state={0}", state);
Thread.Sleep(10000);
}
private static void WaitProcess(string processName)
{
while (true)
{
var process = Process.GetProcessesByName(processName).FirstOrDefault();
if (process == null) break;
process.WaitForExit();
}
}
public static void Test()
{
var ok = Task
.Run(() => WaitProcess("chrome"))
.Wait(TimeSpan.FromHours(1));
if (ok)
{
//Последовательность других действий.
}
}
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть проект, назовём его testProject и есть проект Unittest нужно что бы проект Unittest видел папку Models из проекта testProject, как это сделать?
Пытаюсь создать ManagementObject и выполнить какой-то его методПопытка номер 1:
Подскажите есть ли какой либо способ кэшировать данные приходящие от сервера в проекте Xamarin Forms PCL?