dotnet / dotnet/winforms

Implement UI-thread startup, message-loop ownership, and graceful shutdown

Open
#14,943 0 comments 0 reactions 0 assignees View on GitHub
Review Issue
Dominant language
C#
Stars
4.9k
Forks
1.1k
Avg merge
20h 23m
Merged PRs (30d)
103

Description

## Objective

Implement the chosen lifecycle model, including deterministic UI-thread creation or adoption, synchronization-context availability, `Application.Run` integration, bidirectional host/application shutdown, cancellation, and cleanup. Preserve existing WinForms exception and exit semantics unless an approved contract says otherwise.

## Completion guidance

- Keep the implementation focused on the objective while allowing the assignee to improve the approach based on research.
- Document important decisions, rejected alternatives, dependencies, and follow-up work.
- Add or update tests and documentation appropriate to the work.
- Verify locally and in CI where the task changes code or generated artifacts.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the existing UI-thread startup, SynchronizationContext setup, Application.Run integration, and host/application shutdown paths. Document the chosen lifecycle model and its alternatives, then add appropriate tests and documentation proving deterministic thread ownership, cancellation, cleanup, graceful bidirectional shutdown, and preserved exception and exit semantics.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.