Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // This runs code during the raising of an event caused by the calling of a method about to be made,
- // rather than before any event handlers or immediately after the method call.
- // meanings of methods/classes are assumed to be inferred by usage.
- // makeSomethingHappen = method
- // somethingHappened = event
- // SomethingHappenedArgs = event args for somethingHappened
- // Foo.getFoo() = returns instance of Foo that we're executing the method in.
- // EventHandler has an abstract method which runs when the event it's registered to is raised.
- // Raising an event calls each of the event handlers registered to the event in the same thread.
- public void runCodeWithinMatchingEventHandlerCall()
- {
- final Thread methodThread = Thread.currentThread();
- Foo.getFoo().somethingHappened.register(new EventListener<SomethingHappenedArgs>()
- {
- @Override
- public void onEvent(Object Sender, SomethingHappenedArgs Args)
- {
- if(methodThread == Thread.currentThread();
- {
- // Assume that this call of onEvent corresponds to the event raise caused
- // by the method call that I'm about to make
- // here: run code that is supposed to happen on the event raise caused by
- // my method call.
- // deregister event immediately after
- Foo.getFoo().somethingHappened.deregister(this);
- }
- }
- });
- Foo.getFoo().makeSomethingHappen();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement