Multithreading_Library 1.2.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Multithreading_Library --version 1.2.0
                    
NuGet\Install-Package Multithreading_Library -Version 1.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Multithreading_Library" Version="1.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Multithreading_Library" Version="1.2.0" />
                    
Directory.Packages.props
<PackageReference Include="Multithreading_Library" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Multithreading_Library --version 1.2.0
                    
#r "nuget: Multithreading_Library, 1.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=Multithreading_Library&version=1.2.0
                    
Install Multithreading_Library as a Cake Addin
#tool nuget:?package=Multithreading_Library&version=1.2.0
                    
Install Multithreading_Library as a Cake Tool

Multithreading_Library

This library provides utilities to handle various multithreading scenarios in .NET applications. It contains the following classes:

  1. OneWriteMultiRead: This class allows an object to be read from multiple threads at the same time but only updated from one thread at a time. This helps to ensure data integrity when working with shared resources across multiple threads.
// Example usage
OneWrite_MultiRead<decimal> sharedDecimal = new OneWrite_MultiRead<decimal>(100);

/// Reader threads
decimal t = sharedDecimal.Value;

// writer thread
sharedDecimal.Value = VALUE1;
  1. IDLocks: This class provides locks that are accessible through a dictionary. This allows specific tasks, names, or other entities to be locked individually, enabling finer control over thread synchronization.
// Example usage
IDLocks<int> idLocks = new IDLocks<int>();
var lockObject = idLocks.ObtainLockObject(5);
  1. RequestIDGenerator this class returns an incremental, threadsafe id which can be used to identify requests. EG for a websocket. The function rolls over to 0 at int.MaxValue
// Example usage
RequestIDGenerator idGenerator = new RequestIDGenerator();
int id = idGenerator.GetNextRequestId()
  1. AsyncHelper: This class provides utilities to run an asynchronous Task and wait for the result in a synchronous method. It should be used with caution as it can lead to potential deadlocks. Whenever possible, prefer keeping async code all the way up the call stack.
// Example usage
int parameter = 5;
int result = AsyncHelper.RunSync(async () => await SomeAsyncMethod(parameter));
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net6.0

    • No dependencies.
  • net7.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Multithreading_Library:

Package Downloads
Chia-Client-API

CHIA-RPC is a C# Nuget library that allows developers to easily communicate with the Chia client. It provides a wrapper for making requests, sending transactions, and minting, making it a versatile tool for interacting with the Chia blockchain. With CHIA-RPC, you can easily integrate Chia functionality into your C# projects.

StringHelper.Net

a lightweight library with some arbitrary string algorhythms for cleanup, converting, comparing and file interaction

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.5.2 93 4/11/2025
2.5.1 164 4/2/2025
2.4.6 88 1/14/2025
2.4.5 96 11/27/2024
2.4.4 98 11/13/2024
2.4.2 124 7/16/2024
2.4.1 150 4/10/2024
2.4.0 118 4/9/2024
2.3.0 128 4/8/2024
2.2.0 129 4/4/2024
2.1.1 128 4/4/2024
2.1.0 125 4/4/2024
2.0.0 125 3/27/2024
1.9.0 145 3/15/2024
1.8.0 148 1/19/2024
1.7.0 114 1/19/2024
1.6.0 160 1/4/2024
1.5.0 158 12/13/2023
1.4.0 124 12/12/2023
1.3.0 145 12/5/2023
1.2.1 220 12/1/2023
1.2.0 130 12/1/2023
1.1.1 175 7/4/2023
1.1.0 161 7/4/2023
1.0.1 296 1/25/2023
1.0.0 313 1/9/2023

- Added RequestIDGenerator to obtain short term unique identifiers
- added .Net 8.0