当我查询
时fileSystemWatcher.InternalBufferSize
它将给出分配给Watcher的总内部缓冲区大小。但我想知道(在调试期间)Watcher剩余多少缓冲区大小并且可以使用,当我在事件处理程序方法中使用上述语句时(比如写操作),它总是给我总缓冲区分配大小给观察者。有没有办法获得缓冲区的剩余大小?
其他问题:
从this回答,很明显,事件是在单独的线程上处理的,而不是接收事件的线程。假设我们有一个正在观察文件的Watcher正在进行许多并发事件。我认为(如果我错了,请纠正我)接收事件信息的主线程将为每个事件生成一个新线程,并且事件的处理将在不同的线程上发生。所以我想问:
- 主线程是否会等待完成所有事件的处理?
- 哪个线程将清除与Watcher关联的内部缓冲区以及何时?
- 我已经阅读了许多地方,处理程序方法应该尽可能少的时间,或者我们可以获得
醇>InternalBufferOverflow
例外。 因此,可以安全地假设Watcher的内部缓冲区仅在线程(我不能说一个或所有,但想要求您)正在处理处理程序方法时清理处理方法?