【发布时间】:2015-03-01 09:52:20
【问题描述】:
我需要使用没有表单的 ActiveX 对象。我找到了解决方案here,写同样的代码
public class C
{
private AxMsRdpClient9NotSafeForScripting rdp;
private Thread thread;
public void B()
{
rdp.Invoke(new MethodInvoker(delegate
{
rdp.Connect();
}));
}
public void A()
{
thread = new Thread((ThreadStart)
{
rdp = new AxMsRdpClient9NotSafeForScripting();
rdp.BeginInit();
rdp.CreateControl();
//more
Application.Run();
});
thread.SetApartmentState(ApartmentState.STA);
thread.IsBackground = true;
thread.Start();
}
}
并且在方法 B 中出现异常“InvokeEvent:在创建窗口句柄之前无法在控件上调用 Invoke 或 BeginInvoke”。 rdp.InvokeRequired 总是假的; rdp.IsHandled 始终为 false 我该怎么办?
【问题讨论】: