回答編集履歴

2

別案

2018/12/21 05:10

投稿

takabosoft
takabosoft

スコア8356

test CHANGED
@@ -7,3 +7,53 @@
7
7
  それよりも、質問欄のコードには載っていませんが、
8
8
 
9
9
  SQLiteConnectionのインスタンスや、BeginTransaction()の戻り値などがDisposeし忘れていないか、(using構文なりを使っているか)確認してみてください。
10
+
11
+
12
+
13
+ ----
14
+
15
+ 追記:
16
+
17
+ SQLiteConnectionStringBuilderのリークが気になるのでしたら、毎回生成しないようにしてみては?
18
+
19
+
20
+
21
+ ```csharp
22
+
23
+ static void Main(string[] args)
24
+
25
+ {
26
+
27
+
28
+
29
+ var dbConnectionString = new SQLiteConnectionStringBuilder
30
+
31
+ {
32
+
33
+ SyncMode = SynchronizationModes.Off,
34
+
35
+ JournalMode = SQLiteJournalModeEnum.Memory,
36
+
37
+ DefaultTimeout = 60,
38
+
39
+ BusyTimeout = 10,
40
+
41
+ ReadOnly = true
42
+
43
+ };
44
+
45
+ var connectionString = dbConnectionString.ToString(); // ←タイマーの外で文字列化
46
+
47
+
48
+
49
+ var timer = new Timer(10000);
50
+
51
+ timer.Elapsed += (sender, e) =>
52
+
53
+ {
54
+
55
+ using (SQLiteConnection dbConnection = new SQLiteConnection(connectionString)) // ←タイマーの中では事前に生成した文字列を再利用
56
+
57
+ {
58
+
59
+ ```

1

誤植修正

2018/12/21 05:10

投稿

takabosoft
takabosoft

スコア8356

test CHANGED
@@ -1,11 +1,9 @@
1
1
  SQLiteConnectionStringBuilderは接続文字列を生成するだけのクラスなので、
2
2
 
3
- たとてリークしたところで大したメモリ消費量ではないのではないでしょうか?
3
+ もしリークしたところで大したメモリ消費量ではないのではないでしょうか?
4
4
 
5
5
 
6
6
 
7
7
  それよりも、質問欄のコードには載っていませんが、
8
8
 
9
- SQLiteConnectionのインスタンスや、BeginTransaction()の戻り値などがDisposeしわすれていないか、
9
+ SQLiteConnectionのインスタンスや、BeginTransaction()の戻り値などがDisposeしれていないか、(using構文なりを使っているか)確認してみてください。
10
-
11
- (using構文なりを使っているか)確認してみてください。