Я всегда располагал потоки в глобальном списке потоков (к которому я добавляю все вызванные потоки) после выхода из программы, и заметил во время последнего запуска (который не завершился), что число потоков никогда не опускалось ниже 44, поэтомуЦикл был активирован снова и никогда не выходил.Если посмотреть на остальные 44 темы в списке, их имена были «Ничего» и их статус был прерван.
Вопрос: что делать с прерванными потоками в списке потоков, которые не будут расположены?Нужно ли фильтровать по определенному состоянию потоков, а затем только удалять их?Или я могу просто пропустить этот метод и позволить GC очистить потоки в памяти?
Sub OnApplicationExit()
Dim currentThreads As ProcessThreadCollection = Process.GetCurrentProcess().Threads
For Each thread As ProcessThread In currentThreads
thread.Dispose()
Next
cont:
For Each thr As Thread In threadList
Try
If thr IsNot Nothing Then
thr.Abort()
End If
Catch ex As ThreadAbortException
'ex.ToString()
End Try
Next
If threadList.Count > 0 Then GoTo cont
End Sub