mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-04-13 20:47:04 +00:00
Add CriticalSection for file ops
This commit is contained in:
parent
748b1ca147
commit
169e897748
1 changed files with 39 additions and 21 deletions
|
|
@ -15,6 +15,7 @@ namespace PepperDash.Essentials.Core.Presets
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class DevicePresetsModel : Device
|
public class DevicePresetsModel : Device
|
||||||
{
|
{
|
||||||
|
private CCriticalSection _fileOps = new CCriticalSection();
|
||||||
private readonly bool _initSuccess;
|
private readonly bool _initSuccess;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -101,6 +102,9 @@ namespace PepperDash.Essentials.Core.Presets
|
||||||
|
|
||||||
public void LoadChannels()
|
public void LoadChannels()
|
||||||
{
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_fileOps.Enter();
|
||||||
PresetsAreLoaded = false;
|
PresetsAreLoaded = false;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -124,6 +128,11 @@ namespace PepperDash.Essentials.Core.Presets
|
||||||
handler(this, EventArgs.Empty);
|
handler(this, EventArgs.Empty);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
_fileOps.Leave();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void Dial(int presetNum)
|
public void Dial(int presetNum)
|
||||||
{
|
{
|
||||||
|
|
@ -209,6 +218,9 @@ namespace PepperDash.Essentials.Core.Presets
|
||||||
|
|
||||||
private void SavePresets()
|
private void SavePresets()
|
||||||
{
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_fileOps.Enter();
|
||||||
var json = JsonConvert.SerializeObject(PresetsList);
|
var json = JsonConvert.SerializeObject(PresetsList);
|
||||||
|
|
||||||
using (var file = File.Open(_filePath, FileMode.Truncate))
|
using (var file = File.Open(_filePath, FileMode.Truncate))
|
||||||
|
|
@ -216,6 +228,12 @@ namespace PepperDash.Essentials.Core.Presets
|
||||||
file.Write(json, Encoding.UTF8);
|
file.Write(json, Encoding.UTF8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
_fileOps.Leave();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private void Pulse(Action<bool> act)
|
private void Pulse(Action<bool> act)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue