Помогите понять в чем ошибка с Thread?
Вопрос в следующем, есть такой метод
public async Task<AuctionRequest[]> GetBids(ICollection<RtbModel> rtb_partners, AuctionModel auctionModel)
{
var bids = new Task<AuctionRequest>[rtb_partners.Count];
int i = 0, j = 0;
foreach (var advert in rtb_partners)
{
if (advert == null)
throw new Exception("Dsp not found");
var protocol = advert.Protocol;
string protocolVersion = protocol switch
{
RtbProtocolEnum.OpenRTB_2_2 => "2.2",
RtbProtocolEnum.OpenRTB_2_3 => "2.3",
RtbProtocolEnum.OpenRTB_2_4 => "2.4",
RtbProtocolEnum.OpenRTB_2_5 => "2.5",
_ => throw new NotSupportedException("RTB protocol not supported")
};
var bidRequest = BuildBidRequestModel(auctionModel[j++]);
bids[i++] = await ProcessBidRequest(bidRequest, advert.Endpoint, protocolVersion);
}
return await Task.WhenAll(bids);
}
который внутри себя в цикле вызывает метод
public async Task<AuctionRequest> ProcessBidRequest(BidRequestModel requestModel, string endpoint, string protocol)
{
//Код выполнения
}
Но код не выполнятся так как появляется вот такая ошибка
не могу понять как можно ее исправить, помогите
P.S.
AuctionRequest представляет из себя структуру
public struct AuctionRequest
{
public readonly BidRequestModel bidRequest;
public readonly BidResponseModel bidResponse;
public readonly string rtbProtocol;
public AuctionRequest(BidRequestModel requestModel, BidResponseModel responseModel, string protocolEnum)
{
bidRequest = requestModel;
bidResponse = responseModel;
rtbProtocol = protocolEnum;
}
}
Ответы (1 шт):
Автор решения: Qwertiy
→ Ссылка
bids[i++] = await ProcessBidRequest(bidRequest, advert.Endpoint, protocolVersion);
bids[i++] = ProcessBidRequest(bidRequest, advert.Endpoint, protocolVersion);