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.
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.
// Install Multithreading_Library as a Cake Addin
#addin nuget:?package=Multithreading_Library&version=1.2.0

// Install Multithreading_Library as a Cake Tool
#tool nuget:?package=Multithreading_Library&version=1.2.0

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. 
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 (1)

Showing the top 1 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.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.4.1 89 4/10/2024
2.4.0 78 4/9/2024
2.3.0 93 4/8/2024
2.2.0 79 4/4/2024
2.1.1 87 4/4/2024
2.1.0 92 4/4/2024
2.0.0 88 3/27/2024
1.9.0 98 3/15/2024
1.8.0 107 1/19/2024
1.7.0 59 1/19/2024
1.6.0 108 1/4/2024
1.5.0 108 12/13/2023
1.4.0 91 12/12/2023
1.3.0 108 12/5/2023
1.2.1 167 12/1/2023
1.2.0 92 12/1/2023
1.1.1 146 7/4/2023
1.1.0 134 7/4/2023
1.0.1 264 1/25/2023
1.0.0 268 1/9/2023

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