Found 325 packages
High performance Redis client, incorporating both synchronous and asynchronous usage.
This tool helps you to manage execution order of synchronous events (Workflow and plugins)
The Transient Fault Handling Core provides the retry mechanisms to make your application more resilient to transient faults in both synchronous and asynchronous scenarios.
Thread safe wrapper for Pechkin Html to PDF library. Allows your multiple threads to use Pechkin, while actually working with it from only one thread.
The jQuery BlockUI Plugin lets you simulate synchronous behavior when using AJAX, without locking the browser.
Synchronous methods for Playwright
A simple synchronous pipeline for .net. Visit the project site for further information and examples https://github.com/Marknumskull/Azert.Pipeline
Helper to safely run a Task from a codebase not async.
A simple framework for running exe processes. I.E like invoking node to run docx templater, then invoking libre office to convert the docx file to PDF.
Synchronous message system for Windows Forms applications.
When using dependency injection and async-await pattern it is possible to end up with an interface with a method that returns a Task. If this interface method is used in a synchronous method there is a likelihood that it will erroneously be run as a fire and forget method. In this situation this analyser generates a warning.
Extensions for method chaining Task<IEnumerable<T>>. Directly map to synchronous System.Linq methods.
Commands simplifies coordination of asynchronous and synchronous activities. It works with both task and non-task-based operations. The library is built upon class Command, which represents an action. A Command may be run synchronously or asynchronously, and may be aborted. ParallelCommands, itself a Command, executes a collection of commands concurrently, and SequentialCommands executes its commands in sequence. Using these classes, it's possible to compose deep levels of coordinated actions. For example, SequentialCommands can hold instances of ParallelCommands, which in turn could hold SequentialCommands, and any other Command-derived object. PeriodicCommand repeats its action at a given interval, ScheduledCommand runs once at a specific time, and RecurringCommand runs at times that are provided via a callback. RetryableCommand offers the option to conditionally keep retrying a failed command, FinallyCommand provides a mechanism to ensure a cleanup routine is run regardless of whether a command succeeds or fails, and TimeLimitedCommand fails with a timeout exception if a given duration elapses before the command finishes execution. All of the above Command classes are simply containers for other Command objects that presumably do something of interest. They can be combined in ways that offer a lot of customization. For example, to make an HttpRequest at a given time, with a timeout and a configurable number of retries, you could create a ScheduledCommand containing a RetryableCommand containing a TimeLimitedCommand containing an HttpRequestCommand. TaskCommand, DelegateCommand and Command.AsTask() offer easy integration with tasks and delegates. CommandDispatcher manages asynchronous execution of dynamically generated commands. The Command class allows registration of ICommandMonitor objects. CommandTracer will write diagnostic output to the debug stream, and CommandLogger will write diagnostic output to file. Using the provided CommandLogViewer app (source available in GitHub), it is possible to see the status of all command executions, including their parent/child relationships. Example usage can be found here: https://github.com/efieleke/CommandLib/blob/master/CommandLibSample/Program.cs The entire source lives here: https://github.com/efieleke/CommandLib.git Guidelines for developing your own Command-derived class: - If the implementation of your command is naturally synchronous, inherit from SyncCommand - If the implementation of your command is naturally asynchronous and makes use of tasks (i.e. the Task class), inherit from TaskCommand - If the implementation of your command is naturally asynchronous but does not make use of tasks, inherit from AsyncCommand - Make your implementation responsive to abort requests if it could take more than a trivial amount of time. To do this, make ocassional calls to Command.CheckAbortFlag() or Command.AbortRequested A versions for C++ exists at https://github.com/efieleke/CommandLibForCPP.git. A help file containing complete documentation exists within this package's contents.
A simple framework for synchronously running processes from inside C#. E.g run node to invoke a script that renders a docx report.
A simple framework that helps us write a chainable clean code.
Helpers for asynchronous programming
Introduces IAsyncEnumerable, IAsyncEnumerator, ForEachAsync(), and ParallelForEachAsync() GitHub: https://github.com/Dasync/AsyncEnumerable PROBLEM SPACE Helps to (a) create an element provider, where producing an element can take a lot of time due to dependency on other asynchronous events (e.g. wait handles, network streams), and (b) a consumer that processes those element as soon as they are ready without blocking the thread (the processing is scheduled on a worker thread instead). EXAMPLE using Dasync.Collections; static IAsyncEnumerable<int> ProduceAsyncNumbers(int start, int end) { return new AsyncEnumerable<int>(async yield => { // Just to show that ReturnAsync can be used multiple times await yield.ReturnAsync(start); for (int number = start + 1; number <= end; number++) await yield.ReturnAsync(number); // You can break the enumeration loop with the following call: yield.Break(); // This won't be executed due to the loop break above await yield.ReturnAsync(12345); }); } // Just to compare with synchronous version of enumerator static IEnumerable<int> ProduceNumbers(int start, int end) { yield return start; for (int number = start + 1; number <= end; number++) yield return number; yield break; yield return 12345; } static async Task ConsumeNumbersAsync() { var asyncEnumerableCollection = ProduceAsyncNumbers(start: 1, end: 10); await asyncEnumerableCollection.ForEachAsync(async number => { await Console.Out.WriteLineAsync($"{number}"); }); } // Just to compare with synchronous version of enumeration static void ConsumeNumbers() { var enumerableCollection = ProduceNumbers(start: 1, end: 10); foreach (var number in enumerableCollection) { Console.Out.WriteLine($"{number}"); } }
A utility library encapsulating synchronous file IO operations