我有以下代码(使用ImageSharp):
using (var I = Image.Load<Rgb24>(Picture))
{
// calculate the hash
var T = Task.Factory.StartNew(() => CalculateHash(I));
var Hash = T.Result; <- I put this as a test
...
}
我在CalculateHash方法上收到带有“ I”的“访问已关闭的封闭”警告。
这是代码的简化版本;在正常的代码中,我并行执行一些不同的过程,并等待它们全部完成。
在此示例中,我在“使用”上下文中显式等待任务的结果,因此不应在任务完成之前处理闭包。
我为什么收到此消息?
答案 0 :(得分:0)
JetBrains在这里提供了一些帮助: https://www.jetbrains.com/help/resharper/2018.2/AccessToDisposedClosure.html
看来,在“使用”上下文中明确等待任务的结果是不相关的;您仍然可以在“使用”范围之外继续使用我。