類中調用界面ActiveX控件報錯當前線程不在單線程單元中因此無法實例化 ActiveX 控件的解決辦法


解決辦法是Form類中定義一個靜態的ActiveX對象,在formload中將界面上的ActiveX對象賦值給新定義的對象,類中訪問該靜態對象即可.

public static AxClientDriver_NTLib.AxClientDriverCtrl com = new AxClientDriver_NTLib.AxClientDriverCtrl();

private void Form1_Load(object sender, EventArgs e)
{
com = this.axClientDriverCtrl1;
isRunning = true;

this.FormClosing += Form1_FormClosing;
Thread t = new Thread(StartServer);
////t.SetApartmentState(ApartmentState.STA);//關鍵設置
t.Start();

}

 

public class A

{

public void GetZhiWen()

{

//new AxClientDriver_NTLib.AxClientDriverCtrl().GWQ_SignFinger(); /*報錯:

當前線程不在單線程單元中,因此無法實例化 ActiveX 控件“f1b35062-91ea-47fd-a71e-872c114220b0”。System.Threading.ThreadStateException: 當前線程不在單線程單元中,因此無法實例化 ActiveX 控件“f1b35062-91ea-47fd-a71e-872c114220b0”。*/

Form1.com.GWQ_SignFinger();

}

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM