質問編集履歴

3

文章を修正

2022/05/25 02:46

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- C# 10個タスク終了したらまた10個のタスクを実行するという処理をつくりたい
1
+ C# Task.WaitAll()メソッド使い方りたい
test CHANGED
File without changes

2

文章を修正

2022/05/25 01:36

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- C# Task.WaitAll()メソッド使方が知りたい。
1
+ C# 10個タスクが終了したらまた10個のタスクを実行するとう処理をつくりたい。
test CHANGED
File without changes

1

文章を修正

2022/05/25 00:43

投稿

退会済みユーザー
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
+