I have an application that has a loop, part of the "Scheduler", which works at any time and is the heart of the application. Very similar to the game loop, only that my application is a WPF application, and it is not a game. Naturally, the application performs logging at many points, but the scheduler does some sensitive monitoring, and sometimes it is impossible only from the logs to say what could have turned out to be wrong (and wrong, I don't mean exceptions) or the current status.
Because the internal Scheduler loop runs at short intervals, you cannot write based on I / O based on I / O (or using the event viewer). Firstly, you need to see it in real time, and secondly, the log file will grow very quickly. So I was thinking of ways to show this data to the user in real time, some things that I considered:
- Real-time data display in user interface
- Use AllocConsole / WriteConsole to display this information in the console.
- Use another console application that will display this information, communicate between the Scheduler and the console application using pipes or other IPC technologies.
- Use the Windows performance monitor and somehow feed it using this information.
- ETW
Display in the user interface will have problems. At first, it does not integrate with the user interface that I had in mind for my application, and I do not want to complicate the interface just for that. This diagnosis will occur rarely. Secondly, there will be some non-trivial data protection, since the Scheduler has its own stream.
, , , . , Windows, , , (3), IPC . , . .
, API Performance Monitor, . ETW , , - .
, , ?