Parallel.ForEach + missing records

59 Views Asked by At

I have the below function which does a set of tasks:

private async Task DoworkAsync(List<OrderFragment> of)
{
    var sw = Stopwatch.StartNew();

    var task = CreateOrderjson(of);
    await task;
    var task1 = GetBearerToken();
    await task1;
    var task2 = SubmitOrderIntake(task.Result, task1.Result);
    task2.Wait();    
    var task3 = createExcel();
    await task3;
}

private async Task<List<string>> CreateOrderjson(List<OrderFragment> of)
{

}

private static async Task<string> GetBearerToken()
{

}

Third method:

private async Task<string[]> SubmitOrderIntake(List<string> orderJson, string result)
{
    Parallel.ForEach(orderJson, async order =>
    {
        orederResult = await PostOrderintake(order, result);
    });

    return customerArray;
}

private async Task<ConcurrentBag<string>> PostOrderintake(string order, string result)
{

}

I have two issues:

  1. There is always a missing item in the response vs requests. I tried all solution mentioned but missing keeps happening
  2. var task3 = createExcel(); This is executing before SubmitOrderIntake. This function need to be called last.
0

There are 0 best solutions below