Как повысить ожидание ответа при вызове функции в Windows Forms c # - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть функция, которая запускает процесс EMV.Эта функция имеет тип возврата void, и я вызываю его в блоке кода ниже

public string startEMVProcess(string userpin)
    {
        btnEMVStart_Click(null, null);//this function starts the emv process
        pin = userpin;
        //i want to receive results from the EMV process here. into a global variable called 'result' and return 'result'

        }
        else
        {
            result = "Invalid Pin Length";
            return result;
        }
        return result;
    }

Здесь идентификатор тела функции btnEMVStartClick

private void btnEMVStart_Click(object sender, EventArgs e)
    {

        byte[] additionalTags = Common.getByteArray(tbAdditionalTags.Text);
        IDT_Device.emv_allowFallback(cbAllowFallback.Checked);

        RETURN_CODE rt = IDT_Augusta.SharedController.emv_startTransaction(Convert.ToDouble(tbAmount.Text),0, DeviceTerminalInfo.exponent, 0,30, additionalTags, false);
        if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
        {
            tbOutput.AppendText("Start EMV Successful\r\n");
            System.Diagnostics.Debug.WriteLine("Start EMV Successful");
        }
        else
        {
            tbOutput.AppendText("Start EMV failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt) + ": " + IDTechSDK.errorCode.getErrorString(rt) + "\r\n");
            System.Diagnostics.Debug.WriteLine("Start EMV failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt));
        }
    }

Результат из EMVSDK передает процесс в другую функцию, как показано ниже

private void SetOutputText(string text)
    {
        //the result from the EMV process is 'text'
        var refr = DateTime.Now.ToString("yyyyMMddhhmmss");

        var param = "Referenceid:"+text;
        var res = TestISO(param);//i am doing something with 'text' here and getting a response. 
        //How can i return 'res' back to function 'StartEMVProcess'?                            
    }

Как я могу получить ответ 'res', возвращенный в 'StartEmvProcess'?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...