Работа с ActiveX без формы

Мне дали проект, в котором я должен использовать элемент управления ActiveX без формы.

Этот элемент управления activex принадлежит устройству обмена картами. Поэтому мне нужно создать службу отдыха, с помощью которой любой клиент браузера сможет получить доступ к данным, считанным с карты.

Поэтому я создал метод веб-сервиса, который создает новый поток sta, как только приходит запрос. В этой теме я создаю ActiveXcontrol, как показано ниже, и храню данные в статическом классе. Опять же для второго запроса я делаю то же самое.

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();
    }

Впервые эта программа работает хорошо, но как только я делаю другой запрос (создаю другой поток), в (статический класс) ничего не сохраняется как данные.

Я делаю второй запрос после того, как первый был обслужен.

1 ответ

Решение

Что я понимаю о вашей проблеме:

  • Вы создали объект класса Swiper с новым потоком.
  • Теперь вы получаете доступ Chipper данные с использованием WCF оказание услуг.

У меня нет такого аппаратного устройства, но не могли бы вы поставить

Thread.sleep(10000); 

после while условие и скажите мне выход.

Другие вопросы по тегам