diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageResultsReader.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageResultsReader.cs index b53be5572f..9f5bdde79b 100644 --- a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageResultsReader.cs +++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageResultsReader.cs @@ -52,8 +52,9 @@ namespace ICSharpCode.CodeCoverage CodeCoverageResults ReadCodeCoverageResults(string fileName) { - TextReader reader = fileSystem.OpenText(FileName.Create(fileName)); - return new CodeCoverageResults(reader); + using (TextReader reader = fileSystem.OpenText(FileName.Create(fileName))) { + return new CodeCoverageResults(reader); + } } public IEnumerable GetMissingResultsFiles() diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/RunTestWithCodeCoverageCommand.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/RunTestWithCodeCoverageCommand.cs index b60ff8f777..aafd3f7464 100644 --- a/src/AddIns/Analysis/CodeCoverage/Project/Src/RunTestWithCodeCoverageCommand.cs +++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/RunTestWithCodeCoverageCommand.cs @@ -119,13 +119,18 @@ namespace ICSharpCode.CodeCoverage void DisplayCodeCoverageResults(CodeCoverageResultsReader coverageResultsReader) { - foreach (CodeCoverageResults result in coverageResultsReader.GetResults()) { + foreach (CodeCoverageResults result in GetResults(coverageResultsReader)) { DisplayCodeCoverageResults(result); } foreach (string missingFile in coverageResultsReader.GetMissingResultsFiles()) { DisplayNoCodeCoverageResultsGeneratedMessage(missingFile); } } + + IEnumerable GetResults(CodeCoverageResultsReader coverageResultsReader) + { + return SD.MainThread.InvokeIfRequired(() => coverageResultsReader.GetResults().ToList()); + } void DisplayCodeCoverageResults(CodeCoverageResults results) {