干吗要多线程读?哪个读卡器这么牛B一次能读N张卡?
解决方案 »
- c# socket编ftp客户端 Receive接收数据不全的问题
- 请教。。。。
- 类的继承和方法重新
- 一维数组和字节数组转换
- 第一次用多线程,一个循环任务,如何分几个线程来分别做一部分
- 【问题】二个开发人员,一年开发的项目总费用为 20-25万元,开发人员成本合计为 6-6.5万,请问年终项目提成应给多少算合理?
- 高分求方法,键盘控制的问题。
- 读取文件权限问题?急
- c#如何调用c++的指向指针的指针的接口?
- 各位大虾,小弟又有事相求了。请问你们谁有Charles Petzold的《windows 程序设计》第五版的配套光盘,能不能把里面的一些源代码发给我,
- string.Format( "{0},{1} ",1,3.33)
- 关于保存记录时自动更新序号的问题,请大家来讨论下
给你个思路,可以试试。。
//c++函数强制声明
[DllImport("mi.dll", EntryPoint = "API_OpenComm")]
public static extern IntPtr API_OpenComm(int nCom, int nBaudrate); [DllImport("mi.dll", EntryPoint = "API_ControlBuzzer")]
public static extern int API_ControlBuzzer(IntPtr commHandle, int DeviceAddress, byte freq, byte duration, ref byte buffer); [DllImport("mi.dll", EntryPoint = "API_MF_Read")]
public static extern int API_MF_Read(IntPtr commHandle, int DeviceAddress, byte mode, byte blk_add, byte num_blk, ref byte snr, ref byte buffer);
private void Form1_Load(object sender, EventArgs e)
{
//启动时间轴
timer1.Interval = 1000;
timer1.Start(); }
private void timer1_Tick(object sender, EventArgs e)
{ byte[] hex = new byte[16];
long ret = long.Parse("281474976710655");
hex = BitConverter.GetBytes(ret); byte[] hex1 = new byte[16];
byte[] hex2 = new byte[16];
//Array.Clear(hex1, 0, 16);
byte[] data = new byte[16];
byte prBuf = new byte();
int idata = API_MF_Read(Program.Port, 0, 0, 10, 1, ref hex[0], ref data[0]);
//无卡接触时,循环等待
if (idata != 0)
{
return;
}
//取卡号
s = BitConverter.ToInt64(data, 0).ToString(); member mem = new member();
timer1.Stop(); //卡有效性验证
if (mem.Existsnew(Convert.ToInt32(s)))
{
Program.Num_id = Convert.ToInt32(s);
DialogResult result;
result = MessageBoxEx.Show("此卡有效,是否现在进行考核", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.No)
{
timer1.Start();
return;
}
if(memscore.ifexist(Convert.ToInt32(s)))
{
timer1.Start();
return;
}
}
else
{
MessageBoxEx.Show("此卡无效,请换卡重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
timer1.Start();
return;
}