我一直在讨论这个问题,我试图在我的asp.net mvc web应用程序中注册实时事件。但似乎没什么用。
UserController中:
ZkemClient objZkeeper2 = new ZkemClient();
bool isDeviceConnected = false;
public ActionResult GetLogs()
{
isDevice2Connected = objZkeeper2.Connect_Net("xxx.xxx.xxx.xxx", 4370);
if (isDevice2Connected)
{ //..more code
ZkemClient.cs
public bool Connect_Net(string IPAdd, int Port)
{
if (objCZKEM.Connect_Net(IPAdd, Port))
{
objCZKEM.EnableDevice(1, true);
//65535, 32767
if (objCZKEM.RegEvent(1, 65535))
{
// [ Register your events here ]
// [ Go through the _IZKEMEvents_Event class for a complete list of events
objCZKEM.OnConnected += ObjCZKEM_OnConnected;
objCZKEM.OnDisConnected += objCZKEM_OnDisConnected;
objCZKEM.OnEnrollFinger += ObjCZKEM_OnEnrollFinger;
objCZKEM.OnFinger += new _IZKEMEvents_OnFingerEventHandler(ObjCZKEM_OnFinger);
//objCZKEM.OnFinger += ObjCZKEM_OnFinger;
objCZKEM.OnAttTransactionEx += new _IZKEMEvents_OnAttTransactionExEventHandler(ObjCZKEM_OnAttTransactionEx);
//for b&w
objCZKEM.OnAttTransaction -= new _IZKEMEvents_OnAttTransactionEventHandler(ObjCZKEM_OnAttTransaction);
}
return true;
}
return false;
}
private void ObjCZKEM_OnAttTransaction(int EnrollNumber, int IsInValid, int AttState, int VerifyMethod, int Year, int Month, int Day, int Hour, int Minute, int Second)
{
string time = Year + "-" + Month + "-" + Day + " " + Hour + ":" + Minute + ":" + Second;
//tried breakpoint here but no control is returned
string text = "Verify OK.UserID=" + EnrollNumber.ToString() + " isInvalid=" + IsInValid.ToString() + " state=" + AttState.ToString() + " verifystyle=" + VerifyMethod.ToString() + " time=" + time;
// return objCZKEM.OnAttTransaction(EnrollNumber, IsInValid, AttState, VerifyMethod, Year, Month, Day, Hour, Minute, Second);
}
private void ObjCZKEM_OnAttTransactionEx(string EnrollNumber, int IsInValid, int AttState, int VerifyMethod, int Year, int Month, int Day, int Hour, int Minute, int Second, int WorkCode)
{
string time = Year + "-" + Month + "-" + Day + " " + Hour + ":" + Minute + ":" + Second;
//breakpoints here do not stop
string text = "Verify OK.UserID=" + EnrollNumber.ToString() + " isInvalid=" + IsInValid.ToString() + " state=" + AttState.ToString() + " verifystyle=" + VerifyMethod.ToString() + " time=" + time;
}
我在某个地方读到了我需要使用STA线程,我确实尝试过,但这也无济于事。