Asynchronous UI Display Covering Synchronous Threads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In asynchronous programming environments, synchronous user interface threads are often prematurely killed due to long-running operations, leading to undesirable outcomes, as these systems assume non-responsiveness and terminate the UI thread or application, making it difficult to run programs written using synchronous models.

Innovation Solution

A system determines whether an asynchronous UI display is needed for synchronous user interface threads, generating an asynchronous UI display to cover the synchronous one, blocking further execution until the synchronous processing is complete, and then unblocking the thread once the processing is finished, preventing premature termination.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If an asynchronous system kills UI threads blocking user inputs for long-running operations, then system responsiveness is improved, but synchronous programs cannot complete their operations

Engineering Contradiction:
Improvesystem responsivenessVSAvoidsynchronous program completion
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent introduces an intermediary mechanism that detects when a synchronous program is executing and prevents the asynchronous system from killing its UI thread. This mediator monitors the thread state and intervenes to preserve synchronous program execution while maintaining asynchronous system responsiveness for other operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically adjusts its behavior based on the execution state of programs. When a synchronous program is detected, the system switches from its default policy of killing blocking threads to preserving them. This dynamic adaptation allows the system to maintain responsiveness for asynchronous operations while ensuring synchronous programs can complete their long-running operations.

Inventive Principle:
Principle #15Dynamics

2Reliability

If the system allows synchronous UI threads to block user inputs during long-running operations, then program correctness is maintained, but user interaction is inhibited

Engineering Contradiction:
Improveprogram correctnessVSAvoiduser interaction
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent segments the user interface handling into different modes: synchronous mode for programs requiring blocking behavior and asynchronous mode for responsive operations. This segmentation allows the system to provide appropriate behavior for each program type, maintaining correctness for synchronous programs while preserving user interaction capability through separate asynchronous handling paths.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8990818B2Multiple top level user interface displays
Publication Date: 2015.03.24 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8990818B2 patent drawing
  • US8990818B2 patent drawing
  • US8990818B2 patent drawing

AI summary

When a program invokes a synchronous user interface display, it is determined whether an asynchronous user interface (UI) display needs to be generated. If so, the user interface thread invoked by the synchronous program is blocked and the asynchronous UI display is generated and displayed so that it covers the synchronous display on the UI display screen. When the processing corresponding to the synchronous user interface display is complete, processing returns to the synchronous user interface display and the user interface thread invoked by the synchronous program is unblocked.