thread中COM 对象强制转换为接口类型错误?急
在一过程中有一段利用sqlxml导入xml到sql server功能代码:
.
.
.
SQLXMLBULKLOADLib.SQLXMLBulkLoadClass objBL = new SQLXMLBULKLOADLib.SQLXMLBulkLoadClass();
objBL.ConnectionString = SQLConnectionString;
objBL.ErrorLogFile = "error.log ";
objBL.Execute( "mapping.xml ", "result.xml ");
objBL = null;
.
.
.
在另处调用此过程
如果以一般方式调用则执行正常,没有错误,如下
Functions.downRecords(DateTime.Now);
如果采用线程方式调用,抛出错误:
Thread threadDownN = new Thread(new ParameterizedThreadStart(Functions.downRecords));
threadDownN.Start(DateTime.Now);
err:无法将类型为“SQLXMLBULKLOADLib.SQLXMLBulkLoadClass”的 COM 对象强制转换为接口类型“SQLXMLBULKLOADLib.ISQLXMLBulkLoad”。此操作失败的原因是对 IID 为“{1380DD8D-DCB9-4A6E-9D53-EECDDF18DA85}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 不支持此接口 (异常来自 HRESULT:0x80004002 (E_NOINTERFACE))。
------解决方案--------------------就是类型不对了,改成正确的类型。
------解决方案--------------------Thread threadDownN = new Thread(new ThreadStart(Functions.downRecords));
改成这样试试