質問編集履歴

2

実現したいことを、詳細に書きました。

2020/11/15 05:48

投稿

test189
test189

スコア1

test CHANGED
File without changes
test CHANGED
@@ -12,6 +12,8 @@
12
12
 
13
13
 
14
14
 
15
+
16
+
15
17
  ### 該当のソースコード
16
18
 
17
19
 
@@ -148,11 +150,13 @@
148
150
 
149
151
 
150
152
 
151
- ### 補足
153
+ ### 補足(実現したいこと)
152
154
 
153
155
  barの値の取得に関してですが、
154
156
 
155
- Btn_Click内でGetValueAsyncが呼ばれたタイミングのbarの値が取得できればそれでいいです。
157
+ ~~Btn_Click内でGetValueAsyncが呼ばれたタイミングのbarの値が取得できればそれでいいです。~~
158
+
159
+ Btn_Click内でGetValueAsyncが呼ばれたタイミングのbarの値(ただし、barが更新されていなければ、更新されるまで待つ)を取得したいです。
156
160
 
157
161
 
158
162
 

1

いただいた回答に基づいて、改良してみました。

2020/11/15 05:48

投稿

test189
test189

スコア1

test CHANGED
File without changes
test CHANGED
@@ -108,7 +108,7 @@
108
108
 
109
109
 
110
110
 
111
- ```
111
+ ```csharp
112
112
 
113
113
  private async Task<string> GetValueAsync()
114
114
 
@@ -153,3 +153,47 @@
153
153
  barの値の取得に関してですが、
154
154
 
155
155
  Btn_Click内でGetValueAsyncが呼ばれたタイミングのbarの値が取得できればそれでいいです。
156
+
157
+
158
+
159
+
160
+
161
+ ### 解決策?
162
+
163
+
164
+
165
+ いただいた回答に基づいて、コードを改良してみました。
166
+
167
+
168
+
169
+ ```csharp
170
+
171
+
172
+
173
+ private readonly AutoResetEvent condition = new AutoResetEvent(false);
174
+
175
+
176
+
177
+ private async Task<string> GetValueAsync()
178
+
179
+ {
180
+
181
+ await Task.Run(() =>
182
+
183
+ {
184
+
185
+ condition.WaitOne();
186
+
187
+ });
188
+
189
+ return this._originaltext;
190
+
191
+ }
192
+
193
+
194
+
195
+ ```
196
+
197
+ Hogehogeメソッドのとこには、
198
+
199
+ ```this._foo = bar;```の下に、```condition.Set();```を記述。