Поскольку это работает большую часть времени, это, вероятно, проблема с многопоточностью, приводящая к повреждению внутреннего состояния MEF и вызывающая эту ошибку.
При использовании CompositionContainer из нескольких потоков необходимо создать его с помощьюПараметр isThreadSafe имеет значение true и избегает вызова методов, которые изменяют то, что доступно, таких как Compose
, ComposeParts
или AddExportedValue
.
Методами, которые безопасно вызывать, являются методы GetExport и SatisfyImports.