假设我创建了一个应用程序,该应用程序由当前登录的两个用户运行,user1
处于非活动状态且user2
处于活动状态,请参见下图(因此系统中同时存在两个进程),应用程序将读取/写一个物理文件,比如在这个文件中添加一些信息。
我的问题是,当user2
向此文件添加一些数据时,在切换回user1
后,app inst1
如何知道更改? (我们当然可以重新启动app inst1
,但这是不可取的。)
一个解决方案是让app处理会话更改事件,在Windows中有WTSRegisterSessionNotification
需要HWND
,但我的应用是控制台应用。
有什么想法吗?
答案 0 :(得分:1)
您可以使用Windows API函数FindFirstChangeNotification:
http://msdn.microsoft.com/en-us/library/aa364417%28VS.85%29.aspx
您可以注册要通知的条件(在您的情况下,可能是上次更新时间),然后获取一个可以等待的句柄。我想,你会想把它放在一个单独的线程中而不是阻塞你的主线程。