Я новичок в концепции IDisposable
, у меня есть следующий сценарий с исключением (поток переполнения стека) при удалении объекта.
Мне нужно создать несколько запросов (параллельно), чтобы получитьответ от API.
Как показано ниже:
ViewModel
public vm
{
vm(IunityContainer container) { }
public void somemethod
{
await ListofItems.ParallelForEachAsync(async item =>
{
try
{
using (var objectService = _container.Resolve<IobjectService>())
{
var response = await objectService.GeAllItem(request);
concurrentBag.Add(response);
}
}
catch (Exception e)
{
_logger.Error("Failed operation.", e);
}
},maxDegreeOfParallelism: 5);
}
}
Service.cs
public class Service : Idisposable
{
protected virtual void Dispose(bool disposing)
{
if (_disposed)
return;
if (disposing)
{
this.Dispose();// not sure how to dispose the service layer object which is created
}
_disposed = true;
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}
Проблема : так как я создаюнесколько объектов в параллельном потоке при завершении использования (}) выдает исключение stackoverflow.
решение: я хотел избавиться от «objectService», который создает каждую итерацию foreach.
Пожалуйста, помогите мне решить эту проблему.