一个与com对象交互的难题,在线等
我引进来一些第三方的组件,但某组件的doubleclick事件中,如果我要new 一个用c#写的窗体,是没反应的,而消息框可以出来,如下:
MessageBox.Show( "123 ");//正常
StyleSelector ss1 = new StyleSelector(2);
if(ss1.ShowDialog() == DialogResult.OK)//为什么出不来窗体??
{
if(ss1.getSymbol()!=null)
lSymbol = (ISymbol)ss1.getSymbol();
}
请问这种情况如何解决?
------解决方案--------------------不要直接show
try
BeginInvoke
------解决方案--------------------这样,因为BeginInvoke是立即返回,则如果你Invoke的方法执行耗时,在你判断if(pReturnedSymbol != null)的时候还没执行完。