1

假设我创建了一个由当前登录的两个用户运行的应用程序,user1处于非活动状态和user2活动状态,请参见下图(因此系统中同时存在两个进程),该应用程序将读/写一个物理文件,例如向该文件添加一些信息.

我的问题是,当user2向该文件添加一些数据时,切换回 后user1,如何app inst1知道更改?(我们当然可以重新启动app inst1,但这是不可取的)。

一种解决方案是让应用程序处理会话更改事件,在 Windows 中有一个WTSRegisterSessionNotification需要,HWND但我的应用程序是控制台应用程序。

有任何想法吗?

插图

4

1 回答 1

1

您可以使用 Windows API 函数 FindFirstChangeNotification:

http://msdn.microsoft.com/en-us/library/aa364417%28VS.85%29.aspx

您注册您希望收到通知的条件(在您的情况下,可能是上次更新时间)并获得一个句柄,然后您可以等待。我猜你会想把它放在一个单独的线程中,而不是阻塞你的主线程。

于 2013-03-15T02:31:53.263 回答