質問編集履歴
3
文章を修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
C#
|
1
|
+
C# Task.WaitAll()メソッドの使い方が知りたい
|
test
CHANGED
File without changes
|
2
文章を修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
C#
|
1
|
+
C# 10個のタスクが終了したらまた10個のタスクを実行するという処理をつくりたい。
|
test
CHANGED
File without changes
|
1
文章を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,14 @@
|
|
1
1
|
提示コードのTask.WaitAll()の部分ですが10個のタスクが終わったらまた10個貯めて終わったらまた10個といった具合にタスクの終了待ちをしているのですがこの関数に達してから処理が動かず次のtotal += 10という変数に加算されません。またその次のええええのコンソールログも出力されません。これはどうなっているんでしょうか?提示コード`//非同期メソッドを実行`部
|
2
|
+
|
3
|
+
また下記のawait.csはawait していまっているので無限にタスクが走ってしまいます。
|
4
|
+
|
5
|
+
##### 環境
|
6
|
+
.Net framework 6.0
|
7
|
+
windows form
|
8
|
+
C#言語
|
9
|
+
OS: Windows10
|
10
|
+
IDE: Visual studio 2022
|
11
|
+
|
2
12
|
|
3
13
|
|
4
14
|
参考サイト:https://www.delftstack.com/ja/howto/csharp/wait-for-thread-to-finish-in-csharp/
|
@@ -145,3 +155,61 @@
|
|
145
155
|
}
|
146
156
|
|
147
157
|
```
|
158
|
+
|
159
|
+
###### await.cs
|
160
|
+
```cs
|
161
|
+
|
162
|
+
/* ########################### リストに設定 非同期 ###########################*/
|
163
|
+
public async void setDataList_Async(string u)
|
164
|
+
{
|
165
|
+
Func<Data?> job = () =>
|
166
|
+
{
|
167
|
+
Data d = new Data();
|
168
|
+
d.setData(u); //フォーマットを設定
|
169
|
+
|
170
|
+
if (d.getFormat() != null)
|
171
|
+
{
|
172
|
+
data.Add(d);
|
173
|
+
|
174
|
+
this.Invoke(new Action(() =>
|
175
|
+
{
|
176
|
+
Debug.WriteLine("あああああ");
|
177
|
+
checkedListBox_list.Items.Add(d.getTitle());
|
178
|
+
}));
|
179
|
+
|
180
|
+
|
181
|
+
return d;
|
182
|
+
}
|
183
|
+
else
|
184
|
+
{
|
185
|
+
Debug.WriteLine("ああああ " + u);
|
186
|
+
//MessageBox.Show("URL ERROR: " + u,"", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
187
|
+
return null;
|
188
|
+
}
|
189
|
+
};
|
190
|
+
|
191
|
+
|
192
|
+
await Task.Run(job); //非同期メソッドを実行
|
193
|
+
|
194
|
+
|
195
|
+
Debug.WriteLine("えええええ");
|
196
|
+
/*
|
197
|
+
//成功時 リストに代入
|
198
|
+
if (b != null)
|
199
|
+
{
|
200
|
+
Debug.WriteLine(b.getTitle());
|
201
|
+
checkedListBox_list.Items.Add(b.getTitle());
|
202
|
+
}
|
203
|
+
else
|
204
|
+
{
|
205
|
+
Debug.WriteLine("null");
|
206
|
+
}
|
207
|
+
*/
|
208
|
+
}
|
209
|
+
```
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
|