回答編集履歴

3

元のコードでも戻り値がある場合もミューテックスがリリースされていたので戻した。

2020/12/24 02:20

投稿

marusa
marusa

スコア17

test CHANGED
@@ -144,18 +144,16 @@
144
144
 
145
145
  var result = func(arg);
146
146
 
147
+ return result;
148
+
149
+ }
150
+
151
+ finally
152
+
153
+ {
154
+
147
155
  mutex.ReleaseMutex();
148
156
 
149
- return result;
150
-
151
- }
152
-
153
- finally
154
-
155
- {
156
-
157
- mutex.ReleaseMutex();
158
-
159
157
  }
160
158
 
161
159
  }
@@ -201,3 +199,9 @@
201
199
  追記
202
200
 
203
201
  返り値がある場合ミューテックスがリリースされてない状態だったので修正。
202
+
203
+
204
+
205
+ 追追記
206
+
207
+ returnがあってもミューテックスはリリースされるのでもう一度修正。

2

返り値がある場合ミューテックスがリリースされてない状態だったので修正。

2020/12/24 02:20

投稿

marusa
marusa

スコア17

test CHANGED
@@ -144,6 +144,8 @@
144
144
 
145
145
  var result = func(arg);
146
146
 
147
+ mutex.ReleaseMutex();
148
+
147
149
  return result;
148
150
 
149
151
  }
@@ -193,3 +195,9 @@
193
195
  }
194
196
 
195
197
  ```
198
+
199
+
200
+
201
+ 追記
202
+
203
+ 返り値がある場合ミューテックスがリリースされてない状態だったので修正。

1

ReadWriteClassのmutexが残っていたので削除

2020/12/24 01:05

投稿

marusa
marusa

スコア17

test CHANGED
@@ -27,8 +27,6 @@
27
27
  public class ReadWriteClass
28
28
 
29
29
  {
30
-
31
- private static Mutex mutex = new Mutex(false, "sample");
32
30
 
33
31
  public T GetData<T>(string path)
34
32