質問編集履歴
3
文章を修正
    
        title	
    CHANGED
    
    | 
         @@ -1,1 +1,1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            C#  
     | 
| 
      
 1 
     | 
    
         
            +
            C# Task.WaitAll()メソッドの使い方が知りたい
         
     | 
    
        body	
    CHANGED
    
    | 
         
            File without changes
         
     | 
2
文章を修正
    
        title	
    CHANGED
    
    | 
         @@ -1,1 +1,1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            C#  
     | 
| 
      
 1 
     | 
    
         
            +
            C# 10個のタスクが終了したらまた10個のタスクを実行するという処理をつくりたい。
         
     | 
    
        body	
    CHANGED
    
    | 
         
            File without changes
         
     | 
1
文章を修正
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -1,6 +1,16 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            提示コードのTask.WaitAll()の部分ですが10個のタスクが終わったらまた10個貯めて終わったらまた10個といった具合にタスクの終了待ちをしているのですがこの関数に達してから処理が動かず次のtotal += 10という変数に加算されません。またその次のええええのコンソールログも出力されません。これはどうなっているんでしょうか?提示コード`//非同期メソッドを実行`部
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            また下記のawait.csはawait していまっているので無限にタスクが走ってしまいます。
         
     | 
| 
       3 
4 
     | 
    
         | 
| 
      
 5 
     | 
    
         
            +
            ##### 環境
         
     | 
| 
      
 6 
     | 
    
         
            +
            .Net framework 6.0
         
     | 
| 
      
 7 
     | 
    
         
            +
            windows form
         
     | 
| 
      
 8 
     | 
    
         
            +
            C#言語
         
     | 
| 
      
 9 
     | 
    
         
            +
            OS: Windows10
         
     | 
| 
      
 10 
     | 
    
         
            +
            IDE: Visual studio 2022
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
       4 
14 
     | 
    
         
             
            参考サイト:https://www.delftstack.com/ja/howto/csharp/wait-for-thread-to-finish-in-csharp/
         
     | 
| 
       5 
15 
     | 
    
         
             
            ##### 出力
         
     | 
| 
       6 
16 
     | 
    
         
             
            ```
         
     | 
| 
         @@ -144,4 +154,61 @@ 
     | 
|
| 
       144 
154 
     | 
    
         
             
                        */
         
     | 
| 
       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 
     | 
    
         
            +
             
     |