在 VS 扩展项目中,我正在尝试创建进程线程的映射,同时转换为 EnvDTE.Thread(以访问 Freeze 和 Thaw 方法)和 System.Threading.Thread(以访问 ManagedThreadId 属性)。
理想情况下应该如下,但是强制转换不会编译,说它不能从 System.Threading.Thread 强制转换到 EnvDTE.Thread。
var threads = new Dictionary<EnvDTE.Thread, System.Threading.Thread>();
foreach (System.Threading.Thread thread in this.dte.Debugger.CurrentProgram.Threads) {
threads.Add((EnvDTE.Thread)thread, thread);
}
我怎么能强制转换,知道它不会抛出异常(除非我在这里遗漏了什么)?
编辑:它确实抛出了 InvalidCastException。