microsoft / VSSDK-Analyzers

Roslyn analyzers for Visual Studio extensions
MIT License
45 stars 28 forks source link

False positive in "Invoke single-threaded types on Main thread" #274

Open davkean opened 5 months ago

davkean commented 5 months ago

Bug description

To Reproduce

            private JoinableTaskContext joinableTaskContext;
            public int Invoke(IVsInvokablePrivate pInvokable)
            {
                try
                {
                    return this.joinableTaskContext.Factory.Run(async delegate
                    {
                        await this.joinableTaskContext.Factory.SwitchToMainThreadAsync();
                        return pInvokable.Invoke(); // Fires
                    });
                }
                catch (Exception ex)
                {
                    return Marshal.GetHRForException(ex);
                }
            }

See: https://github.com/microsoft/vssdktestfx/blob/main/src/Microsoft.VisualStudio.Sdk.TestFramework/GlobalServiceProvider.cs#L299-L313

Expected behavior

Should not fire

Screenshots

Analyzer outputs warning

Additional context