I hope I am missing something obvious here:

Say I have three objects A, B, and C. My program starts with object "A".
I use object "A" to create instances of objects "B" and "C". Object "B"
does some work and when "B" completes its work, I want it to raise an event
that object "A" can see so that object "A" can respond by making object "C"
do some work.

How can I enable object B to effectively call a method in object A (by raising
an event or something) so that object A can in turn call a method in object
C?

I've learned that object B can call a static method in object A. But the
rule for static methods is that they can only operate on the class to which
they belong (meaning that a static method in object A could not call a method
in object C).

You see, objects "B" and "C" do specialized work as all good objects should
do. But I need object "A" to be able to coordintate the activities between
"B" and "C".

How do I handle this?