-2

フォームなしで ActiveX コントロールを使用しなければならないプロジェクトが与えられました。

その ActiveX コントロールは、カード スワイパー デバイスに属しています。だから私がしなければならないことは、ブラウザクライアントがカードのスワイプデータにアクセスできる残りのサービスを作成することです.

そこで、リクエストが来るとすぐに新しい sta スレッドを作成する webservice メソッドを作成しました。この sta スレッドでは、以下のように ActiveXcontrol を作成し、静的クラスにデータを格納します。2 番目の要求についても、同じことを行います。

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

初めてこのプログラムはうまくいっていますが、別の要求を行う (別のスレッドを作成する) とすぐに、(静的クラス) にデータとして何も格納されません。

最初のリクエストが提供された後、2 番目のリクエストを行います。

4

1 に答える 1

1

私があなたの問題について理解していることは:

  • 新しいスレッドでSwiperクラスのオブジェクトを作成しました。
  • Chipperこれで、サービスを使用してデータにアクセスしていWCFます。

私はそのようなハードウェアデバイスを持っていませんが、入れていただけませんか

Thread.sleep(10000); 

条件の後、while出力を教えてください。

于 2012-12-17T08:21:47.573 に答える