Task.WaitAll and Exceptions

后端 未结 3 1319
粉色の甜心
粉色の甜心 2020-12-23 21:30

I have a problem with exception handling and parallel tasks.

The code shown below starts 2 tasks and waits for them to finish. My problem is, that in case a task thr

3条回答
  •  一生所求
    2020-12-23 21:49

    I was trying to create a call for each item in a collection, which turned out something like this:

    var parent = Task.Factory.StartNew(() => {
      foreach (var acct in AccountList)
        {
          var currAcctNo = acct.Number;
          Task.Factory.StartNew(() =>
          {
            MyLocalList.AddRange(ProcessThisAccount(currAcctNo));
          }, TaskCreationOptions.AttachedToParent);
          Thread.Sleep(50);
        }
      });
    

    I had to add the Thread.Sleep after each addition of a child task because if I didn't, the process would tend to overwrite the currAcctNo with the next iteration. I would have 3 or 4 distinct account numbers in my list, and when it processed each, the ProcessThisAccount call would show the last account number for all calls. Once I put the Sleep in, the process works great.

提交回复
热议问题