namespace WIDESEAWCS_Tasks { public static class MemoryLockManager { private static Dictionary<string, SemaphoreSlim> _locks = new Dictionary<string, SemaphoreSlim>(); /// <summary> /// å¼€å¯é” /// </summary> /// <param name="jobName"></param> /// <returns></returns> public static bool TryAcquireLock(string jobName) { if (!_locks.ContainsKey(jobName)) { _locks[jobName] = new SemaphoreSlim(1, 1); } try { return _locks[jobName].Wait(0); } catch (Exception) { return false; } } /// <summary> /// é‡Šæ”¾é” /// </summary> /// <param name="jobName"></param> public static void ReleaseLock(string jobName) { if (_locks.ContainsKey(jobName)) { _locks[jobName].Release(); } } } }