.NET与COM互操作性深度解析
1. 设置线程单元状态
在调用Visual Basic 6组件之前,我们需要设置线程的单元状态。可以使用以下代码尝试将线程设置为单线程单元(STA)模式:
If Thread.CurrentThread.TrySetApartmentState(ApartmentState.STA) Then ' Le mode STA a correctement été défini. … Else ' On ne peut utiliser le mode STA pour une raison quelconque. ' Vous pouvez choisir d’émettre une erreur ou d’entreprendre ' l’action la plus appropriée pour l’application en cours. … End If ' Vous pouvez maintenant appeler un composant Visual Basic 6. Dim sc As New SampleComponent.SampleObject一旦线程初始化了单元类型,就无法修改。任何修改ApartmentState属性的尝试都会被忽略,且不会抛出异常。另一种向CLR指示要创建的单元类型的方法是使用STAThread或MTAThread属性标记Sub Main过程: <