하드웨어에서 정보를 읽는 Microsft PowerPoint 추가 기능 솔루션을 사용하고 있으며 하드웨어 개발자가이 하드웨어를 제어하기 위해 SDK를 제공했지만 문제를 제어하려고합니다.개체를 STA 스레드에서 사용한 후 어떻게 사용할 수 있습니까?
나는이 라이브러리를 가지고 클래스에게 있습니다 ARS
ARS.BaseConnection
나는이 변수를 가지고 ARS.BaseConnection BaseConn;
A가 나는 유형의 새 개체를 만들 때 문제는 BaseConnection
BaseConn = new ARS.BaseConnection();
디버거에 예외가 표시되지 않고 POWERPNT.exe가 충돌하고 중지됩니다.
POWERPNT를 디버그하려고했는데 위치가 0x00d20f78 인 액세스 위반 작성.하지만 파워 포인트를 프로그래밍하지는 않습니다.
ARS.BaseConnection BaseConn;`
public form1()
{
InitializeComponent();
System.Threading.Thread thread = new System.Threading.Thread(createBase);
thread.SetApartmentState(System.Threading.ApartmentState.STA);
thread.Start();
thread.Join();
BaseConn.Open(); // There is the problem, when I'm trying to use open() BaseConn debuger says: COM object that has been separated from its underlying RCW cannot be used.
}
private void createBase()
{
BaseConn = new ARS.BaseConnection(); //If it runs in a STA tread doesn't crash.
}
내가 가진 :
나는 SDK의 데모 프로그램 (즉, 실제로 작동)는이 [STAThread] 주 전에, 그래서 내가 새 스레드를 만들고 STA로 실행해야합니다 생각 가지고 세례반 기본 RCW에서 분리 된 COM 개체는 사용할 수 없습니다.
어떻게하면됩니까?
게시 한 코드가 유효하지 않습니다. 스레드가 종료 된 후 개체가 죽었습니다. 이 사고를 추적하려면 공급 업체의 도움이 필요합니다. –