c#在类中如何用时间10秒内重复执行函数,10秒后则要return出方法?

za552459800 2012-09-18 11:26:59
求求各位大哥大姐帮帮忙!
在这个地方我不知道怎么判断了,这是一段手持机的代码,是扫描RFID的,要求在10秒内重复找卡,代码如下:
/// <summary>
/// 寻卡操作,成功则返回字符串, 失败返回空
/// </summary>
/// <returns></returns>
public static bool getRFID()
{
try
{
byte[] pszData = new byte[255];
string strRFID = string.Empty;
UID = string.Empty;
TagType = string.Empty;

//电子标签 寻卡操作 look for cards
//iRes返回成功:0x00或者0,失败则是1或10
int iRes = RF_ISO14443A_request_Ex(1, pszData); ---关键点在这个地方怎么用时间控制在10秒内重复执行这句。如何在10秒内找到卡了就跳出来。。。大哥大姐能帮忙完成下
if (iRes == 0x00)
{
//寻卡成功 返回数组 0字节数据长度 1,2字节ATQA 3字节UID长度 4字节后为UID信息
//Search card successfully, 0 bytes return the length of the array, 1,2 byte return ATQA, 3 bytes return UID length, remain bytes return UID.
strRFID = BitConverter.ToString(pszData, 4, pszData[3]).Replace("-", "");
UID = strRFID;
........
...全文
411 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
za552459800 2012-09-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
开启一个线程去做,10秒后如果线程不返回,结束线程,AutoResetEvent的WaitOne可以设置等待时间
[/Quote]
怎么写代码啊,线程我没用过。。。
za552459800 2012-09-18
  • 打赏
  • 举报
回复
意思是这样的,用户在扫的时候他有10秒可以扫,用户在拿手持机在点扫RFID按钮时触发这个方法,上面那句关键代码是在找卡,就是想能不能在这个地方10秒内执行找卡操作。找到为止,如果在10秒内找到了则判断 if (iRes == 0x00)是否成功
bdmh 2012-09-18
  • 打赏
  • 举报
回复
开启一个线程去做,10秒后如果线程不返回,结束线程,AutoResetEvent的WaitOne可以设置等待时间
熙风 2012-09-18
  • 打赏
  • 举报
回复
10s没重复执行这句是多长时间执行一次呢?
owennol 2012-09-18
  • 打赏
  • 举报
回复
int iRes = -1;
DateTime start = DateTime.Now;
while(iRes != 0x00)
{
iRes = RF_ISO14443A_request_Ex(1, pszData);
if (iRes == 0x00)
{
//寻卡成功
}
else
{
DateTime end = DateTime.Now;
TimeSpan ts = end.SubStract(start);
if(ts.TotalSeconds > 10.0)
break; //大于10秒退出
}

}

109,900

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧