Partilhar via


O suporte a IMsoComponent é opt-in

Uma alteração foi feita para evitar que os threads do Windows Forms sempre se registrassem com instâncias IMsoComponentManager existentes. No entanto, você pode optar por registrar instâncias existentes IMsoComponentManager em seus threads do Windows Forms.

Versão introduzida

.NET 9 Visualização 2

Comportamento anterior

Anteriormente, os threads do Windows Forms sempre eram registrados com instâncias existentes IMsoComponentManager .

Novo comportamento

A partir do .NET 9, os threads do Windows Forms não se integram automaticamente ao processo registrado IMsoComponentManagers. Para recuperar o comportamento anterior, defina a opção Switch.System.Windows.Forms.EnableMsoComponentManager.

Alterar categoria

Esta mudança é uma mudança comportamental.

Razão para a alteração

Esta alteração foi feita para o desempenho e eficiência. O comportamento anterior apresentava muita sobrecarga como ele usava COM, e nem todos os desenvolvedores precisam desse comportamento.

Se você deseja reverter para o comportamento anterior, você pode optar por suportar usando IMsoComponent uma opção no arquivo runtimeconfig.json ou como um RuntimeHostConfigurationOption item no arquivo de projeto.

runtimeconfig.json ficheiro:

{
  "configProperties": {
    "Switch.System.Windows.Forms.EnableMsoComponentManager": true
 }
}

Ficheiro do projeto:

<ItemGroup>
  <RuntimeHostConfigurationOption Include="Switch.System.Windows.Forms.EnableMsoComponentManager" Value="true" />
</ItemGroup>

APIs afetadas