Background Thread Event Processing for GUI Scroll Continuity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multithreaded computing environments, graphical user interfaces (GUIs) often experience stalls or stutters when the main thread is interrupted, particularly during scroll input processing, as existing technologies lack efficient mechanisms to handle input device events concurrently.

Innovation Solution

The implementation of background threads that process input device events, such as touch, gestures, or mouse scroll wheel inputs, allowing continuous navigation of content even when the main thread is interrupted, by storing events in an event queue and processing them independently to prevent user experience disruptions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the main thread processes all input device events for GUI navigation, then the GUI rendering is consistent and controlled, but the system experiences stalls or stutters when the main thread is interrupted

Engineering Contradiction:
ImproveGUI navigation continuityVSAvoidThread responsiveness
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the single main thread's event processing responsibility into multiple separate threads: the main thread continues to handle high-priority GUI events while background threads process scroll and navigation events independently. This segmentation allows concurrent processing without blocking the main thread, eliminating stalls and stutters while maintaining reliable GUI navigation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements an event queue that stores input device events before they are processed. Background threads can pull events from this pre-populated queue and process them independently without waiting for the main thread. This preliminary action of queuing events enables asynchronous processing and prevents main thread interruptions from causing visible stalls.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If background threads process input device events concurrently, then the GUI navigation remains smooth without stalls, but the system complexity increases with multiple thread management

Engineering Contradiction:
ImproveEvent processing throughputVSAvoidThread management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an event queue as an intermediary data structure between the main thread and background threads. This mediator allows background threads to access and process events without direct interaction with the main thread, simplifying synchronization and reducing the complexity of inter-thread communication while maintaining high event processing throughput.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent extracts the scroll and navigation event processing functionality from the main thread and places it in separate background threads. This extraction isolates the complex multi-threaded processing to specific non-critical paths, allowing the main thread to remain simple and focused on essential GUI events, thereby reducing overall system complexity despite the presence of multiple threads.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If the main thread is interrupted during scroll input processing, then other critical GUI tasks can be handled, but the user experiences visible stalling or stuttering

Engineering Contradiction:
ImproveThread task flexibilityVSAvoidUser interaction smoothness
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent ensures continuous processing of scroll and navigation events by assigning them to background threads that run independently of the main thread's execution flow. When the main thread is interrupted for other critical tasks, these background threads continue processing user input without interruption, maintaining smooth user interaction while preserving the main thread's ability to handle diverse GUI tasks flexibly.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS9286081B2Input device event processing
Publication Date: 2016.03.15 APPLE INC
  • US9286081B2 patent drawing
  • US9286081B2 patent drawing
  • US9286081B2 patent drawing

AI summary

A background thread can be used to process events, e.g., a touch, gesture, pinch, or swipe, that are received on a touch sensitive device, or events, e.g., mouse scroll wheel events that are received on a input device, e.g., a mouse. The background thread can be used to process events when a main thread assigned to the Graphical User Interface (GUI) is interrupted. In such situations, the background thread can continue processing events. In cases where the main thread is interrupted and the event is scroll input, the background thread can draw content on the GUI in response to the scroll, so that the response to the scroll input observed by the user is unaffected by the interrupted main thread. By processing events and drawing content using the background thread while the main thread is blocked, the GUI can be navigated without having the user experience a stall or stutter.