FileLockerLib 0.0.24
dotnet add package FileLockerLib --version 0.0.24
NuGet\Install-Package FileLockerLib -Version 0.0.24
<PackageReference Include="FileLockerLib" Version="0.0.24" />
paket add FileLockerLib --version 0.0.24
#r "nuget: FileLockerLib, 0.0.24"
// Install FileLockerLib as a Cake Addin #addin nuget:?package=FileLockerLib&version=0.0.24 // Install FileLockerLib as a Cake Tool #tool nuget:?package=FileLockerLib&version=0.0.24
FlieLockLib
Presenting a minimalist library for process synchronization using a file-based locking mechanism. This lightweight solution, crafted for simplicity and efficiency, enables seamless coordination between processes. By utilizing a file as a lock, this library provides a straightforward method for synchronizing processes, ensuring orderly execution and avoiding conflicts. Integrate this library into your projects to achieve efficient synchronization without unnecessary complexity.
Usage:
static FileLocker locker;
static int releaseCounter = 0;
static int releaseAfter = 10;
static void Main(string[] args)
{
//the name of the lock need to be accepted by all processes
string fileLockPath = @"C:\Users\proxytype\Desktop\filelocker.lck";
//create new file locker
locker = new FileLocker(true);
//signin the filelocker events
locker.FileLockerHandler += Locker_FileLockerHandler;
//for the example the file going to be lock and release
while (true) {
locker.lockFile(fileLockPath);
Random random = new Random();
int value = random.Next(100, 1000);
Thread.Sleep(value);
if (locker.isLock)
{
releaseCounter = releaseCounter + 1;
if (releaseCounter > releaseAfter)
{
releaseCounter = 0;
locker.unlockFile();
Thread.Sleep(2000);
}
}
else {
Thread.Sleep(value);
}
}
}
//getting feedback from the locker
private static void Locker_FileLockerHandler(FileLockerPayload payload)
{
Console.WriteLine(Process.GetCurrentProcess().ProcessName
+ " - Locker Response:" + payload.code.ToString()
+ " Message:" + payload.message);
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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 was computed. 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 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.0.24 | 1,038 | 6/29/2019 |