SmartThreadPool icon indicating copy to clipboard operation
SmartThreadPool copied to clipboard

System.InvalidOperationException when Cancel ThreadPool

Open CyrilJ opened this issue 9 years ago • 1 comments

Hello,

I'm using this library for long-times but i recently had a problem :

Here the call stack (french sorry) :

System.InvalidOperationException: La collection a été modifiée; l'opération d'énumération peut ne pas s'exécuter. à System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) à System.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext() à Amib.Threading.SmartThreadPool.Cancel(Boolean abortExecution)

When watching the code of the method i think, it must create a copy of the values before looping on it. Replace :

foreach (ThreadEntry threadEntry in _workerThreads.Values)

by

var threadEntrys = _workerThreads.Values.ToList() foreach (ThreadEntry threadEntry in threadEntrys )

CyrilJ avatar Nov 16 '16 13:11 CyrilJ