Patent ID: 8832711

Claim:
A method for providing an event-driven interface comprising: within an application framework of a single application: receiving a plurality of user generated events each corresponding to user interaction with one of a plurality visual representations of a plurality of modules, associating each of the plurality of user generated events with one of a plurality of module threads corresponding to the visual representation corresponding to the user generated event, wherein each module thread persists during execution of the application framework and wherein each module thread has a corresponding thread state and each module thread maintains data regarding its corresponding thread state, user data, and library data, wherein each of the module threads is in a wait state or in an active state and wherein the data is maintained in a memory for each of the module threads in the wait state, evaluating whether each of the plurality of user generated events is a mutually exclusive event or non-mutually exclusive event, enabling at least a portion of the non-mutually exclusive events to be handled, and enabling each mutually exclusive event to be handled only if no other mutually exclusive event is being handled, wherein mutually exclusive events cannot be handled concurrently and other mutually exclusive events are blocked when handling one of the mutually exclusive events; and within at least a portion of the module threads, concurrently handling at least a portion of the plurality of user generated events by executing handling functions corresponding to the non-mutually exclusive events and one of the mutually exclusive events that is enabled to be handled, wherein a thread manager associated with an operating system manages concurrent execution of the threads while the module threads are associated only with the single application and operate in the context of the single application.