-2
我得到了一個項目,其中我必須使用無形式的activeX控件。處理無形式的activeX
該activex控件屬於卡片掃描儀設備。所以我需要做的是創建一個休息服務,任何瀏覽器客戶端都可以訪問卡的刷卡數據。
所以我創建了一個webservice方法,一旦請求到來就會創建一個新的sta線程。在這個sta線程中,我創建瞭如下所示的ActiveX控件並將數據存儲在靜態類中。對於第二個請求,我也是這樣做的。
try
{
axOPOSMSR1 = new AxOposMSR_CCO.AxOPOSMSR();
axOPOSMSR1.CreateControl();
if (axOPOSMSR1.Open("IDTECH_SECUREMAG_USBHID") == 0)
{
axOPOSMSR1.ClaimDevice(100);
axOPOSMSR1.DeviceEnabled = true;
axOPOSMSR1.DataEventEnabled = true;
axOPOSMSR1.DecodeData=true;
axOPOSMSR1.ParseDecodeData = true;
while (!Devicedisable && (axOPOSMSR1.Track1Data == ""))
{
}
axOPOSMSR1.ClearInput();
axOPOSMSR1.ReleaseDevice();
axOPOSMSR1.Close();
axOPOSMSR1.Dispose();
axOPOSMSR1.ContainingControl = null;
axOPOSMSR1 = null;
GC.Collect();
}
第一次這個節目做得很好,但只要我再拍請求(讓另一個線程)沒有得到存儲在(靜態類)的數據。
我在第一次服務後發出第二次請求。
啊哈!有用。感謝您的努力@Amit – Satish2230
,但你能告訴我爲什麼發生這種情況 – Satish2230
是啊,因爲在你檢查的while循環數據是原始數據,它將隨時準備,但爲了準備加密數據需要一段時間.. –