C # библиотеки для временных действий - PullRequest
4 голосов
/ 13 декабря 2010

знаете ли вы какие-либо библиотеки C #, которые позволяют вам выполнять последовательность действий, т.е. каждое действие выполняется после завершения предыдущего или, что еще лучше, после определенного интервала времени.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 13 декабря 2010

Посмотрите на http://msdn.microsoft.com/en-us/library/dd537609.aspx

Метод Task.ContinueWith let Вы указываете задачу, которая будет запущена при предыдущая задача завершена.

Пример

var task = Task.Factory.StartNew(() => GetFileData())
                                       .ContinueWith((x) => Analyze(x.Result))
                                       .ContinueWith((y) => Summarize(y.Result));
2 голосов
/ 13 декабря 2010

для выбора времени попробуйте quartz.net .для синхронизации действий используйте, например.события, ручки ожидания , Monitor.Wait() и Monitor.Pulse() ...

, в противном случае вы можете обрабатывать набор действий, например,

var methods = new List<Func>
{
    FooMethod1,
    FooMethod2
}
foreach (var method in methods)
{
    method.Invoke();
}

, но это имеет смысл только, если у вас нет метода-модератора (последовательная обработка) или ваши методы не должны знать друг о друге.

0 голосов
/ 13 декабря 2010

Для запланированных заданий вы ищете библиотеку, которая поддерживает задания cron.Вот тот, который я использовал в проекте.

http://blog.bobcravens.com/2009/10/an-event-based-cron-scheduled-job-in-c/

Существует множество библиотек.Я обнаружил, что многие из них многофункциональны и немного тяжелы.

Надеюсь, это поможет.

Боб

...