diff --git a/v2rayN/v2rayN/Base/SqliteHelper.cs b/v2rayN/v2rayN/Base/SqliteHelper.cs index 4b6a2c3c..60c60811 100644 --- a/v2rayN/v2rayN/Base/SqliteHelper.cs +++ b/v2rayN/v2rayN/Base/SqliteHelper.cs @@ -9,8 +9,9 @@ namespace v2rayN.Base private static readonly Lazy _instance = new(() => new()); public static SqliteHelper Instance => _instance.Value; private string _connstr; - public SQLiteConnection _db; - public SQLiteAsyncConnection _dbAsync; + private SQLiteConnection _db; + private SQLiteAsyncConnection _dbAsync; + private static readonly object objLock = new(); public SqliteHelper() { @@ -34,7 +35,10 @@ namespace v2rayN.Base } public int Replace(object model) { - return _db.InsertOrReplace(model); + lock (objLock) + { + return _db.InsertOrReplace(model); + } } public async Task Replacesync(object model) { @@ -43,7 +47,10 @@ namespace v2rayN.Base public int Update(object model) { - return _db.Update(model); + lock (objLock) + { + return _db.Update(model); + } } public async Task UpdateAsync(object model) { @@ -51,12 +58,18 @@ namespace v2rayN.Base } public int UpdateAll(IEnumerable models) { - return _db.UpdateAll(models); + lock (objLock) + { + return _db.UpdateAll(models); + } } public int Delete(object model) { - return _db.Delete(model); + lock (objLock) + { + return _db.Delete(model); + } } public async Task DeleteAsync(object model) { diff --git a/v2rayN/v2rayN/Handler/ProfileExHandler.cs b/v2rayN/v2rayN/Handler/ProfileExHandler.cs index b230b330..902b8817 100644 --- a/v2rayN/v2rayN/Handler/ProfileExHandler.cs +++ b/v2rayN/v2rayN/Handler/ProfileExHandler.cs @@ -24,7 +24,7 @@ namespace v2rayN.Handler _lstProfileEx = new(SqliteHelper.Instance.Table()); - Task.Run(async () => + Task.Run(() => { while (true) { @@ -35,7 +35,7 @@ namespace v2rayN.Handler var item = _lstProfileEx.FirstOrDefault(t => t.indexId == id); if (item is not null) { - await SqliteHelper.Instance.Replacesync(item); + SqliteHelper.Instance.Replace(item); } } Thread.Sleep(1000 * 60); diff --git a/v2rayN/v2rayN/Handler/StatisticsHandler.cs b/v2rayN/v2rayN/Handler/StatisticsHandler.cs index fbd1eabc..8f95f22d 100644 --- a/v2rayN/v2rayN/Handler/StatisticsHandler.cs +++ b/v2rayN/v2rayN/Handler/StatisticsHandler.cs @@ -162,7 +162,7 @@ namespace v2rayN.Handler todayDown = 0, dateNow = ticks }; - _ = SqliteHelper.Instance.Replacesync(_serverStatItem); + SqliteHelper.Instance.Replace(_serverStatItem); _lstServerStat.Add(_serverStatItem); } }