阅读:1688回复:13
有关超时问题!
如何在应用层实现超时操作?
|
|
|
沙发#
发布于:2002-11-08 08:21
应用层应该用后者吧,就是在超时之前事件被触发时执行一种操作,超时还没有被触发执行另一种操作,有什么复杂? nod,nod |
|
|
板凳#
发布于:2002-11-07 15:07
看了觉得一头浆糊 应用层应该用后者吧,就是在超时之前事件被触发时执行一种操作,超时还没有被触发执行另一种操作,有什么复杂? [编辑 - 11/7/02 by brucezh] |
|
|
地板#
发布于:2002-11-07 13:34
对阿,如何在应用层上利用KeWaitForSingleObject进行超时操作!
|
|
地下室#
发布于:2002-11-07 13:31
看了觉得一头浆糊
NTSTATUS KeWaitForSingleObject( IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL ); DWORD WaitForSingleObject( HANDLE hHandle, // handle to object DWORD dwMilliseconds // time-out interval ); 从定义看都是有超时的 |
|
5楼#
发布于:2002-11-07 11:13
下面这个例子实现了对串口操作的延时:
Function SelectCommState(CommPort1:String;Delaytimes:integer) : Boolean; //选择串口函数,并设置延时 var commtimeout : TCommTimeouts; bResult : Boolean; CommPort : String; begin if hCommDev <> NULL then CloseHandle(hCommDev); CommPort:=CommPort1; hCommDev := CreateFile(PChar(CommPort), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0); if hCommDev = INVALID_HANDLE_VALUE then begin MessageBox(0, PChar(\'无法打开串口!\'), PChar(\'错误\'), MB_OK); if hCommDev <> NULL then CloseHandle(hCommDev);// handle to object to close hCommDev := NULL; end; bResult := GetCommTimeouts(hCommDev, commtimeout); if not bResult then MessageBox(0,PChar(\'无法取得超时信息!\'),PChar(\'错误\'),MB_OK); With commtimeout do begin ReadIntervalTimeout := Delaytimes; ReadTotalTimeoutConstant :=Delaytimes; WriteTotalTimeoutConstant := Delaytimes; end; bResult := SetCommTimeouts(hCommDev, commtimeout); if not bResult then MessageBox(0,PChar(\'无法设置超时信息!\'),PChar(\'错误\'),MB_OK); Result :=bResult; end; |
|
|
6楼#
发布于:2002-11-07 11:03
如何在应用层实现超时操作? 那你就对它进行延时操作呀 :) 我只在delphi下做过。 :(不过我想c也应该差不多吧 :) |
|
|
7楼#
发布于:2002-11-06 17:13
我说的是在应用层用KeWaitForSingleObject如何实现超时? 以下例子实现等待事件2秒: int interval=2000;//等待时间,毫秒为单位 DWORD result=WaitForSingleObject(hevent/*事件句柄*/, interval); switch(result) { case WAIT_OBJECT_0: ………… //此处是没有超时的操作 break; default: ………… //超时 } |
|
|
8楼#
发布于:2002-11-06 17:11
一点也不明摆
|
|
|
9楼#
发布于:2002-11-06 16:29
还是没说明白!!
|
|
|
10楼#
发布于:2002-11-06 14:21
我说的是在应用层用KeWaitForSingleObject如何实现超时?
|
|
11楼#
发布于:2002-11-06 13:49
斑竹,能具体点吗?有没有范例?
|
|
12楼#
发布于:2002-11-06 12:36
啥超时?
不懂。 对什么超时?Socket? |
|
|
13楼#
发布于:2002-11-06 12:24
sleep
|
|
|