IDisposable
概念的新手,我遇到以下情况处置对象时遇到异常(堆栈溢出流)。我必须创建多个请求(并行)才能从API。
如下所示:
视图模型
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的每次迭代。问题
请帮助我解决此问题。
我是IDisposable概念的新手,当我处理该对象时,遇到以下情况(堆栈流)。我必须创建多个请求(并行)才能从API获得响应。...
Dispose()
调用Dispose(bool disposing)
,然后再次调用Dispose()
如此反复直到到达堆栈末尾的事实。