What's Changed
Fixes
- Fix
CancellationToken.Combinewith 3+ cancelable tokens by @AArnott in #1443 - Fix VSTHRD110 firing in Expression-valued scenarios by @AArnott with @Copilot in #1467
- Fix super set for VSTHRD103 by @AArnott in #1545
- Fix VSTHRD114 not firing for null in ternary conditional expressions by @AArnott with @Copilot in #1548
- Disable VSTHRD010 in AppWithoutMainThread.editorconfig by @ArturDorochowicz in #1562
- Fix VSTHRD103 missing diagnostic for sync extension methods with async alternatives in the same static class by @drewnoakes with @Copilot in #1569
Enhancements
- Add
JoinableTaskFactory.DisableProcessing()by @AArnott in #1576 - Add
NoMessagePumpSyncContext..ctor(SynchronizationContext)for Post/Send behaviors by @AArnott in #1578 - Add trim and NativeAOT safety attributes by @AArnott in #1471
- Add
IPendingExecutionRequestStateinterface to expose completion state ofSingleExecuteProtectorby @lifengl in #1447 - Add AdditionalFiles support to VSTHRD103 analyzer for excluding specific APIs by @AArnott with @Copilot in #1465
- Document InvalidOperationException for AsyncReaderWriterLock acquisition methods by @AArnott with @Copilot in #1466
- Allow library code to detect the JoinableTaskContext is not associated with Main thread by @lifengl in #1477
- remove NotifyOfCrossThreadDependency call inside get_NoMessagePumpSynchronizationContext by @lifengl in #1486
- reduce overhead when running in no main thread mode by @lifengl in #1502
- Join tasks waited by JoinableTaskCollection.JoinUntilEmpty in dumpasync result by @lifengl in #1538
- Remove slow regex from threading analyzers by @AArnott in #1547
New Contributors
- @jgrosic made their first contribution in #1485
- @AbhitejJohn made their first contribution in #1533
- @ArturDorochowicz made their first contribution in #1562
- @microsoft-github-policy-service[bot] made their first contribution in #1587
Full Changelog: v17.14.15...v18.7.23