The IndividualTested event was intended to provide feedback
to the user as a generation was being tested. However,
because private method calls cannot be serialized across an
AppDomain, this was dropped from the initial release.
To correct this, a helper class could be instantiated and setup
to call the private method in the original AppDomain. When
the “Don’t use AppDomain” EngineOption is used, the
private method could be used directly. Changing the method
to public would allow external classes to update the progress
and interfere with the GPEngine’s internal affairs.
It would be a good idea to add an option for limiting the
number of times progress is updated to reduce the number of
method calls (and cross-AppDomain calls) during a
Population test. For example, update progress in 10%
increments (10 calls), 25% (4 calls), etc.