Compze.Utilities.SystemCE.ThreadingCE
0.2.0-alpha.1
dotnet add package Compze.Utilities.SystemCE.ThreadingCE --version 0.2.0-alpha.1
NuGet\Install-Package Compze.Utilities.SystemCE.ThreadingCE -Version 0.2.0-alpha.1
<PackageReference Include="Compze.Utilities.SystemCE.ThreadingCE" Version="0.2.0-alpha.1" />
<PackageVersion Include="Compze.Utilities.SystemCE.ThreadingCE" Version="0.2.0-alpha.1" />
<PackageReference Include="Compze.Utilities.SystemCE.ThreadingCE" />
paket add Compze.Utilities.SystemCE.ThreadingCE --version 0.2.0-alpha.1
#r "nuget: Compze.Utilities.SystemCE.ThreadingCE, 0.2.0-alpha.1"
#:package Compze.Utilities.SystemCE.ThreadingCE@0.2.0-alpha.1
#addin nuget:?package=Compze.Utilities.SystemCE.ThreadingCE&version=0.2.0-alpha.1&prerelease
#tool nuget:?package=Compze.Utilities.SystemCE.ThreadingCE&version=0.2.0-alpha.1&prerelease
Compze.Utilities.SystemCE.ThreadingCE
Threading and synchronization utilities for Compze.
What is Compze?
Compze is a .NET framework for building expressive domains through Teventive programming and Typermedia APIs. Learn more
What's in this package?
Thread synchronization primitives, usage guards, async locks, Task utilities, and a rich testing toolkit for deterministic multi-threaded tests.
Monitor (IMonitorCE)
A feature-rich monitor with read/update locks, conditional awaiting, and deadlock detection:
var monitor = MonitorCE.WithTimeout(1.Seconds());
// Read lock
var value = monitor.Read(() => _sharedState);
// Update lock
monitor.Update(() => _sharedState = newValue);
// Conditional await — blocks until condition is true
monitor.Await(() => _queue.Count > 0);
Usage guards
Catch threading violations at runtime:
SingleThreadUseGuard— ensures component is accessed from one thread onlySingleTransactionUsageGuard— ensures component stays within one transactionCombinationUsageGuard— composes multiple guards
Async lock
var asyncLock = new AsyncLockCE();
await using(await asyncLock.LockedAsync())
{
// Critical section
}
Task utilities
TaskCE.Run()— guaranteed execution on a different threadTaskCE.RunOnDedicatedThread()— runs on a new dedicated threadcaf()— abbreviatedConfigureAwait(false)forTask,Task<T>,ValueTaskWaitUnwrappingException(),ResultUnwrappingException()— clean exception propagation
Thread-safe shared state
IThreadShared<T>— read/update/await operations on shared dataMachineWideSharedObject<T>— cross-process shared state via files + named mutex
Testing toolkit
Deterministic multi-threaded testing primitives:
ThreadGate— controllable gate to synchronize threads at specific pointsGatedCodeSection— entrance + exit gates for controlling thread flow through code sectionsTestingTaskRunner— run background tasks with automatic exception propagation
var gate = ThreadGate.WithTimeout(1.Seconds());
gate.Close();
// Start background work that will block at the gate
var task = Task.Run(() => { gate.AwaitPassThrough(); DoWork(); });
gate.AwaitQueueLengthEqualTo(1); // Wait for thread to arrive
gate.Open(); // Let it through
Installation
dotnet add package Compze.Utilities.SystemCE.ThreadingCE
Related packages
| Package | Description |
|---|---|
| Compze.Utilities.SystemCE | System type extensions |
| Compze.Contracts | Design-by-contract assertions |
| Compze.Functional | Functional programming primitives |
| Compze.Utilities | Core utilities |
License
Apache-2.0
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Compze.Contracts (>= 0.6.0)
- Compze.Functional (>= 0.6.0)
NuGet packages (14)
Showing the top 5 NuGet packages that depend on Compze.Utilities.SystemCE.ThreadingCE:
| Package | Downloads |
|---|---|
|
Compze.Utilities.Testing.Must
Fluent assertion library for Compze testing. |
|
|
Compze.Utilities.Testing.XUnit
xUnit testing utilities and attributes for the Compze framework. |
|
|
Compze.Utilities.DependencyInjection
Package Description |
|
|
Compze.Utilities.Logging
Package Description |
|
|
Compze.Utilities.DependencyInjection.SimpleInjector
SimpleInjector dependency injection integration for the Compze framework. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.2.0-alpha.1 | 82 | 2/28/2026 |
| 0.1.0-alpha.3 | 272 | 2/13/2026 |