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 )
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 )