从viewmodel wpf和c#处置服务层对象>> [

问题描述 投票:1回答:1
我是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获得响应。...

c# wpf parallel-processing idisposable parallel.foreach
1个回答
1
投票
[stackoverflow错误源于Dispose()调用Dispose(bool disposing),然后再次调用Dispose()如此反复直到到达堆栈末尾的事实。
© www.soinside.com 2019 - 2024. All rights reserved.