C# 多线程用法

方法一:
  public Task<string> ReadCard(string strIn)
        {
            return Task.Factory.StartNew(() =>
            {
                string result = string.Empty;
                try
                {
                   //方法
                    result=方法反参
                }
                catch (Exception ex)
                {
                    LogWrite.AddLgoToTXT("ReadCard异常错误为:" + ex.Message);
                }
                LogWrite.AddLgoToTXT("ReadCard反参为:" + result);
                return result;
            });
        }

  方法二:

 public string ReadCard(string strIn)
        {
            string result = string.Empty;
            try
            {

                this.Invoke(new Action(() =>
                {
                    LogWrite.AddLgoToTXT("ReadCard入参为:" + strIn);
                    //声明输入参数、输出参数,空间大小必须>=512,并初始化
                    byte[] InStr = new byte[512];
                    byte[] OutStr = new byte[512];
                    Array.Clear(InStr, 0, 512);
                    Array.Clear(OutStr, 0, 512);
                    InStr = Encoding.UTF8.GetBytes(strIn);

                    int ret = CardTrans(InStr, OutStr);
                    string str = System.Text.Encoding.Default.GetString(OutStr);
                      result = str;
                }));              
         
            }
            catch (Exception ex)
            {
                LogWrite.AddLgoToTXT("ReadCard异常错误为:" + ex.Message);
            }
            LogWrite.AddLgoToTXT("ReadCard反参为:" + result);
            return result;
        }

  方法三:

  public string ReadCard(string strIn)
        {
            string result = string.Empty;
            try
            {
                Task<string> task = Task.Factory.StartNew<string>(() => ceshi(strIn));
                result = task.Result;
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(GetType(), "ReadCard异常错误为:" + ex.Message);
            }
            LogHelper.WriteLog(GetType(), "ReadCard反参为:" + result);
            return result;
        }
    public string ceshi(string strIn)
        {
            string result = string.Empty;
            string str = string.Empty;
            try
            {
                LogHelper.WriteLog(GetType(), "ReadCard入参为:" + strIn);
                //声明输入参数、输出参数,空间大小必须>=512,并初始化
                byte[] InStr = new byte[512];
                byte[] OutStr = new byte[512];
                Array.Clear(InStr, 0, 512);
                Array.Clear(OutStr, 0, 512);
                InStr = Encoding.UTF8.GetBytes(strIn);

                int ret = CardTrans(InStr, OutStr);
                str = System.Text.Encoding.Default.GetString(OutStr);
                result = str;
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(GetType(), "ceshi异常错误为:" + ex.Message);
            }
            return result;
        }

 

posted @ 2023-05-17 15:59  fulllove  阅读(37)  评论(0)    收藏  举报