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

浙公网安备 33010602011771号