mirror of
https://github.com/netchx/netch.git
synced 2026-03-18 18:13:21 +08:00
Add Microsoft.VisualStudio.Threading
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.VisualStudio.Threading;
|
||||
using Netch.Interfaces;
|
||||
using Netch.Models;
|
||||
using Netch.Utils;
|
||||
|
||||
@@ -12,6 +12,7 @@ using System.Windows.Forms;
|
||||
using Windows.Win32;
|
||||
using Windows.Win32.Foundation;
|
||||
using Windows.Win32.UI.WindowsAndMessaging;
|
||||
using Microsoft.VisualStudio.Threading;
|
||||
using Microsoft.Win32;
|
||||
using Netch.Controllers;
|
||||
using Netch.Enums;
|
||||
@@ -518,7 +519,7 @@ namespace Netch.Forms
|
||||
return;
|
||||
}
|
||||
|
||||
await Configuration.SaveAsync();
|
||||
Configuration.SaveAsync().Forget();
|
||||
|
||||
// 服务器、模式 需选择
|
||||
if (ServerComboBox.SelectedItem is not Server server)
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
<IsPackable>false</IsPackable>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<Nullable>enable</Nullable>
|
||||
<NoWarn>VSTHRD002;VSTHRD200;VSTHRD100;VSTHRD101;VSTHRD110;VSTHRD130</NoWarn>
|
||||
<EnableNETAnalyzers>false</EnableNETAnalyzers>
|
||||
<AnalysisMode>Default</AnalysisMode>
|
||||
<CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
|
||||
@@ -39,6 +40,7 @@
|
||||
<PackageReference Include="HMBSbige.SingleInstance" Version="5.0.7" />
|
||||
<PackageReference Include="MaxMind.GeoIP2" Version="4.0.1" />
|
||||
<PackageReference Include="Microsoft.Diagnostics.Tracing.TraceEvent" Version="2.0.70" GeneratePathProperty="true" />
|
||||
<PackageReference Include="Microsoft.VisualStudio.Threading" Version="16.10.56" />
|
||||
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.1.506-beta">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
|
||||
@@ -3,7 +3,9 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.VisualStudio.Threading;
|
||||
using Netch.Models;
|
||||
using Serilog;
|
||||
|
||||
@@ -24,6 +26,8 @@ namespace Netch.Utils
|
||||
|
||||
private const string BackupFileName = "settings.json.bak";
|
||||
|
||||
private static readonly AsyncReaderWriterLock _lock = new(null);
|
||||
|
||||
private static readonly JsonSerializerOptions JsonSerializerOptions = Global.NewCustomJsonSerializerOptions();
|
||||
|
||||
static Configuration()
|
||||
@@ -93,8 +97,14 @@ namespace Netch.Utils
|
||||
/// </summary>
|
||||
public static async Task SaveAsync()
|
||||
{
|
||||
if (_lock.IsWriteLockHeld)
|
||||
return;
|
||||
|
||||
try
|
||||
{
|
||||
await using var _ = await _lock.WriteLockAsync();
|
||||
Log.Verbose("Save Configuration");
|
||||
|
||||
if (!Directory.Exists(DataDirectoryFullName))
|
||||
Directory.CreateDirectory(DataDirectoryFullName);
|
||||
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Netch.Utils
|
||||
{
|
||||
public static class TplExtensions
|
||||
{
|
||||
public static void Forget(this Task? task)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ using System.IO;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.VisualStudio.Threading;
|
||||
|
||||
namespace Netch.Utils
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user