Skip to content

Commit a1ef8a7

Browse files
Make extra sure we're on the right thread for menu callbacks
This is more a case of fixing warnings than chaning product behaviour afaik
1 parent 925a0c3 commit a1ef8a7

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

Vsix/ConvertCSToVBCommand.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ private async Task ProjectItemMenuItem_BeforeQueryStatusAsync(object sender, Eve
119119
menuItem.Visible = false;
120120
menuItem.Enabled = false;
121121

122+
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
122123
string itemPath = (await VisualStudioInteraction.GetSingleSelectedItemOrDefaultAsync())?.ItemPath;
123124
if (itemPath == null || !CodeConversion.IsCSFileName(itemPath))
124125
return;
@@ -147,6 +148,8 @@ private async Task CodeEditorMenuItemCallbackAsync(object sender, EventArgs e)
147148

148149
private async Task ProjectItemMenuItemCallbackAsync(object sender, EventArgs e)
149150
{
151+
152+
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
150153
string itemPath = (await VisualStudioInteraction.GetSingleSelectedItemOrDefaultAsync())?.ItemPath;
151154
await ConvertDocumentAsync(itemPath, new Span(0, 0));
152155
}

Vsix/ConvertVBToCSCommand.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ private async Task ProjectItemMenuItem_BeforeQueryStatusAsync(object sender, Eve
117117
menuItem.Visible = false;
118118
menuItem.Enabled = false;
119119

120+
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
120121
string itemPath = (await VisualStudioInteraction.GetSingleSelectedItemOrDefaultAsync())?.ItemPath;
121122
if (itemPath == null || !CodeConversion.IsVBFileName(itemPath))
122123
return;
@@ -145,6 +146,7 @@ private async Task CodeEditorMenuItemCallbackAsync(object sender, EventArgs e)
145146

146147
private async Task ProjectItemMenuItemCallbackAsync(object sender, EventArgs e)
147148
{
149+
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
148150
string itemPath = (await VisualStudioInteraction.GetSingleSelectedItemOrDefaultAsync())?.ItemPath;
149151
await ConvertDocumentAsync(itemPath, new Span(0, 0));
150152
}

0 commit comments

Comments
 (0)