Found 35 packages
An MvvmLight helper for calling RaisePropertyChanged on the UI thread from a PCL. See Project Site for instructions.
Run annotated methods on the Main Thread
Messagebox for AvaloniaUI
MainThreadDispatcher implementation for WPF
Interface for various main thread dispatcher implementations
Provides helpers for SynchronizationContext. Can be used to synchronize UI operations with backend operations.
Run your xunit-based tests on an STA thread with the WPF Dispatcher, a WinForms SynchronizationContext, or even a cross-platform generic UI thread emulation with a SynchronizationContext that keeps code running on a "main thread" for that test. Simply use [WpfFact], [WinFormsFact], [StaFact] or the cross-platform [UIFact] on your test method to run your test under conditions that most closely match the main thread in your application. Theory variants of these attributes allow for parameterized testing. Check out the xunit.combinatorial nuget package for pairwise or combinatorial testing with theories.
A framework to easily create threads to run tasks Synchronously or Asynchronously. To get started write a class that derives from AThreadTask. From there override the PerformTask(object parameter) method. In this method, write the code you would like to have ran in it's own thread. The value you return will be populated in the ReturnValue property of AThreadTask. Synchronous threading will run all of the tasks in the queue when the Start() method has been called and block the main thread until all of the tasks have completed. Any tasks added after Start() has been called will need to have Start() called again. Asynchronous threading will run all of the tasks in the queue and not block the main thread when Start() has been called. If you add tasks after Start(), they will be added to the queue and executed when a thread becomes available.
MainThreadDispatcher implementation for Xamarin.Forms
Unitysync.Async is a library of extension methods that lets you preform async continuations on Task/Task<T> Types. Allowing you to non-blockingly call async methods on the Unity3D main thread and continue on the Unity3D main thread when the Task/Task<T> is completed.
A Roslyn analyzer for .NET MAUI that warns when methods decorated with [MainThreadOnly] or MAUI UI APIs are invoked from background threads. Includes the MainThreadOnlyAttribute for marking methods.
This logging library makes large use of enterprise correlation. In a lot of applications that incorporate various small and large services, it is often important to correlate events that happen across these services. It gives us a business workflow view of the various events that happen in the application, its components and services. This library provide operation and activity ID management and propagation. The main difference with this library over other is that you can configure each type of log separately. You can enable fatal, error, warning, debugging, informational, progress and sensitive data logging all independently of each other. This is more flexible than the concept of minimum level logging, such as that in log4net or serilog e.g. enabling one warning in this libraries will enable error and fatal logging as well. This library allows you to set those settings independently of each other. The SqlLogger maps AdditionalData to table columns, where the key of the dictionary entry is the column name and the value is serialised to JSON as the column value. MetaData is serialised to a single JSON value stored in the MetaData column. This means you can store data such as a User ID or Job ID in a separate column so you can filter more efficiently with indexes and partitions. TraceLogger and ConsoleLogger both seralise and format all information into a single string. The MultiLogger allows you to configure several different loggers to be used at once with different settings for each logger. Usage is in the form of: static void Main() { ICorrelationIdHelper correlationIdHelper = new WebCorrelationIdHelper(); // This value will be set automatically to all logs within this thread... so long as System.Threading.Tasks.Task.Factory.StartNew is used. correlationIdHelper.SetCorrelationId(Guid.NewGuid()); DoSyncWork(); DoAsyncWork(); } static void DoSyncWork() { ILogger logger = new SqlLogger(); logger.LogDebug("Some technical debugging details."); } static void DoAsyncWork() { System.Threading.Tasks.Task.Factory.StartNew(() => { ILogger logger = new ConsoleLogger(); logger.LogInfo("An informative message."); }); } This package installs cdmdotnet.Logging.dll with includes core logging functionality. Other packages depend on cdmdotnet.Logging for specific implementations.
CK.Core contains types and helpers that are used across different projects. Main types are: - NormalizedPath: Normalizes / and \ separators to /, exposes Parts and handle multiple kind of roots: / (RootedBySeparator), 'X:' or ':' (RootedByFirstPart), '//' (RootedByDoubleSeparator), or 'xx://' (RootedByURIScheme). - CKTrait: Thread safe set of (immutable) string tags that support all set operations. - DateTimeStamp: Simple DateTime with byte uniquifier. - SimpleServiceContainer: Basic IServiceProvider implementation. - HashStream and SHA1Value, SHA256Value and SHA512Value. - ISystemClock and SystemClock default implementation. - Completable & Completion: Are "futures" or "yet another promises" (based on Task/TaskCompletionSource). Offer Covariance of the completion result and optional extension points to map errors (exceptions or cancellation) to regular results. - CKBinaryReader/Writer: extend IBinaryReader/Writer with nullable support, more read/write of standard types and optional value sharing.
Xamarin Cross Platform IScheduler implementation for scheduling onto the main thread. Works with Xamarin.Forms, Xamarin.Android, Xamarin.iOS, and Xamarin.UWP
RLoggerLib is a library that performs logging operations with minimal latency without blocking the main thread. It is designed to be thread-safe, and you can add your own logging targets.
log4net.ElasticSearch.Async is a log4net appender, based on log4net.ElasticSearch package, for easy logging of exceptions and messages to Elasticsearch indices. The main improvement over log4net.ElasticSearch is background/async logging based on producer-consumer pattern, automatically utilizing bulk API in case of log event bursts. Currently the package provides: - Background/Async logging based on producer-consumer pattern (non-blocking for main application thread) - Configurable exponential backoff retry policy for communication with ElasticSearch - Configurable buffer sizes with rolling buffer option (both general producer-consumer buffer and intermediate flush buffer) - External machine IP added to log events (if possible) - Skipping TLS certificate validation for ElasticSearch endpoint - Setting custom HTTP(S) proxy - Disabling system HTTP(S) proxy - Using custom ElasticSearch processing pipeline - Gzip HTTP compression - NET Standard 2.0 support
Thread-safe simple class that uses Threads to have a query that processes items without interrupting your main thread.
The main library for the development of Reloaded Mod Loader Modifications. Provides you with JIT X86/64 Assembly, Memory Buffers, X86/64 Function Calling, X86/64 Function Hooking, X86/64 Custom Function Hooking (Usercall/Userpurge), X86/64 Function Pointers, Virtual Function Table Hooking/Calling, Native Array Utilities, Pattern/Signature Scanning, Reading/Writing Memory, Memory Page Management, Easy DLL Injector, Thread Management and more.
Android specific bindings for RxJava 2.This module adds the minimum classes to RxJava that make writing reactive components in Android applications easy and hassle-free. More specifically, it provides a Scheduler that schedules on the main thread or any given Looper.
Docker.DotNet is a library that allows you to interact with the Docker Remote API programmatically with fully asynchronous, non-blocking and object-oriented code in your .NET applications. Forked from the main Docker.Net repo and updated to support .Net Standard 2.1. Also added thread safety on stream reading/writing to prevent deadlocks.