-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Closed
Labels
area-core-dispatchingMain/UI threads, IDispatcher, IDispatcherTimerMain/UI threads, IDispatcher, IDispatcherTimeri/regressionThis issue described a confirmed regression on a currently supported versionThis issue described a confirmed regression on a currently supported versionp/0Current heighest priority issues that we are targeting for a release.Current heighest priority issues that we are targeting for a release.platform/windowsregressed-in-10-preview7s/triagedIssue has been reviewedIssue has been revieweds/verifiedVerified / Reproducible Issue ready for Engineering TriageVerified / Reproducible Issue ready for Engineering Triaget/bugSomething isn't workingSomething isn't working
Milestone
Description
Description
I updated my application from .NET 9 to .NET 10 Preview 7 and observed release mode differences and crashes, with no warnings or indicators due to thread propagation issues.
Steps to Reproduce
- Create a complex object called
MyObject. Have this object expose properties - Create a
ViewModelthat the UI binds to. - Create a binding for a
Pickerwho binds toList<MyObject> - Spawn a thread, assign
List<MyObject> - Observe
COMExceptiondue to marshalling on the wrong thread (only in release mode)
Expected. No issue, binding should propagate to UI thread.
Actual. Some bindings no longer propagate to UI thread (primitives seem to be safe, but that's because they are thread safe).
Link to public reproduction project repository
- Clone repository
- Run on Windows in debug mode
- Observe that the time label on the UI updates
- Run on Windows in release mode
- Observe that the time label on the UI no longer updates
Version with bug
10.0.0-preview.7
Is this a regression from previous behavior?
Yes, this used to work in .NET MAUI
Last version that worked well
10.0.0-preview.6
Affected platforms
Windows
Affected platform versions
No response
Did you find any workaround?
Wrapping all of the updates to the relevant properties in MainThread.InvokeOnMainThreadAsync, but this is tedious for an application that makes heavy use of threading.
Relevant log output
Metadata
Metadata
Assignees
Labels
area-core-dispatchingMain/UI threads, IDispatcher, IDispatcherTimerMain/UI threads, IDispatcher, IDispatcherTimeri/regressionThis issue described a confirmed regression on a currently supported versionThis issue described a confirmed regression on a currently supported versionp/0Current heighest priority issues that we are targeting for a release.Current heighest priority issues that we are targeting for a release.platform/windowsregressed-in-10-preview7s/triagedIssue has been reviewedIssue has been revieweds/verifiedVerified / Reproducible Issue ready for Engineering TriageVerified / Reproducible Issue ready for Engineering Triaget/bugSomething isn't workingSomething isn't working
Type
Projects
Status
Done