阅读:2007回复:12
驱动与用户程序通讯,阻塞等待用户程序响应的问题驱动与用户程序通讯,阻塞等待用户程序响应的问题 比如像防火墙那种,驱动程序拦到了一个网络连接。它把它反鐀给用户界面,提示“XXX程序向XXX路径发起连接,是否允许?”这时让用户选择。如果用户不选,界面就会阻塞在那里。 普通是用户与驱动方法这个我会,因为它是由用户程序发起的。驱动返回数据。而不阻塞。 而像现在这种从驱动到用户界面,会在用户界面阻塞,这种情况需要如何处理? |
|
沙发#
发布于:2007-08-05 23:40
一般情况下,需要设置一下超时,如果用户不选择,超时到达后,使用默认的方式进行处理
|
|
|
驱动小牛
|
板凳#
发布于:2007-08-06 09:20
Event,似乎都是用Event
|
地板#
发布于:2007-08-07 09:54
能不能給我個一最簡單的例子?
|
|
地下室#
发布于:2007-08-20 11:51
顶一下,我也想知道,高手能不能给个例子?
|
|
5楼#
发布于:2007-08-20 13:07
共享EVENT
|
|
6楼#
发布于:2007-08-23 13:26
貌似方法还是比较多的,而我用的是双事件通讯,这个方法比较普遍简单,大概原理是这样:
1. 创建两个事件对象,驱动和用户程序一人用一个 2. 用户程序创建线程,让他阻塞等待事件 3. 驱动发现异常就发送事件通知用户线程,然后自己阻塞等待另外一个事件 4. 线程弹出对话框让用户选择后,发送数据和事件通知驱动,然后自己再重新阻塞 lz试试这样行不行 |
|
7楼#
发布于:2007-08-23 15:05
,楼上的方法
|
|
|
8楼#
发布于:2007-09-17 09:57
3. 驱动发现异常就发送事件通知用户线程,然后自己阻塞等待另外一个事件
--------------------------------- 但這個方法對防火牆可能不好吧,驅動陰塞等待一個事件了,如果這時有別的應用程序要發數據怎麼辦?這時你的驅動陰在這裡。這樣一樣所有的網絡通訊都給斷開了。 |
|
9楼#
发布于:2007-09-17 15:59
推荐6楼方法
阻塞是对线程的,不影响其它的程序 |
|
10楼#
发布于:2007-09-18 13:19
阻塞不會只是對線程,因為你的驅動也在阻塞等待用戶的選擇了。如果用戶不選,那你的驅動會一直阻在這裡。
|
|
11楼#
发布于:2007-09-19 08:30
wowocock 大俠也說用雙等待事件可以實現,我得試試了,大俠說的總是有道理的。
|
|
12楼#
发布于:2007-09-20 00:37
学习学习
|
|