Skip to content

This repo provides few tasks extensions and solution for parallelizing tasks with dependencies.

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.meta
Notifications You must be signed in to change notification settings

RFS-6ro/R6Tasks

Repository files navigation

R6Tasks

This repo provides few tasks extensions and solution for parallelizing tasks with dependencies.

Parallelizing tasks solution is based on book "Concurrency in .NET" https://www.manning.com/books/concurrency-in-dot-net

Built-in Example: Here is an oriented graph, presenting tasks and their dependencies image

Using R6Parallelizer we initiate system:

R6Parallelizer resolver = new R6Parallelizer();

resolver.AddTask(1, action(1, 6000), new[] {4, 5});
resolver.AddTask(2, action(2, 2000), new[] {5});
resolver.AddTask(3, action(3, 8000), new[] {6, 5});
resolver.AddTask(4, action(4, 5000), new[] {6});
resolver.AddTask(5, action(5, 4500), new[] {7, 8});
resolver.AddTask(6, action(6, 1000), new[] {7});
resolver.AddTask(7, action(7, 9000));
resolver.AddTask(8, action(8, 7000));

We could subscribe on task complete events

resolver.OnTaskCompleted += ResolverOnOnTaskCompleted;

And Resolve it with a single line

resolver.Resolve();

Output

image

Note

R6Parallelizer automatically reuse free resources

Dependencies

This solution uses my fork of Actress repository. link: https://github.com/RFS-6ro/Actress

About

This repo provides few tasks extensions and solution for parallelizing tasks with dependencies.

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.meta

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages