1. A computer system for allocating incoming events among a plurality of different operational groups to create a multi-threaded computation process, each operational group comprising a process or task within an application, said computer system comprising a programmable data processing apparatus that comprises: an event processing system configured to receive incoming events; an event key generator within said event processing system, said event key generator being configured to generate event keys at run time for each incoming event received; and a thread dispatcher, said thread dispatcher being configured to allocate said incoming events for execution among said operational groups according to said associated incoming event keys, each operational group comprising a process or task within an application, wherein said thread dispatcher is configured to use said event keys to determine if an incoming event is related to any previously received event, and, if said incoming event is related to a previously received event, said thread dispatcher is configured to allocate said incoming event to a same, single thread as said previously received related event; wherein said event key comprises an indication of a monitored context among said operational groups to which a corresponding event is to be transmitted and an indication of an identified property of said corresponding event.