gpt4 book ai didi

electron - Electron BrowserWindow ID是否保证在应用程序的生命周期内是唯一的?

转载 作者:行者123 更新时间:2023-12-03 12:26:27 26 4
gpt4 key购买 nike

如果我的 Electron 应用程序打开和关闭了许多BrowserWindow,那么每个应用程序是否都具有唯一的ID?

因此,在我的应用一次运行中,如果我打开一个BrowserWindow并关闭它,然后打开一个新的BrowserWindow:新的BrowserWindow是否有可能具有与我关闭的ID相同的ID?

最佳答案

您可以期望基于当前源(1.8.4版本或2.0.0-beta.5)的每个实例的唯一ID。

在本地方面,BrowserWindow实现继承自TrackableObject,后者实际上处理ID。 win.id API看起来像this

int32_t Window::ID() const {
return weak_map_id();
}
weak_map_id()返回的ID以 this之类的 TrackableObject构造

weak_map_id_ = ++next_id_;
weak_map_->Set(isolate, weak_map_id_, wrapper);

其中 next_id_是可跟踪实例中的静态成员,并且永不减少。

因此,浏览器ID在整个应用运行期间应始终保持递增状态,而不管其删除情况如何。

以下愚蠢的示例确认了该行为

const { app, BrowserWindow } = require('electron')
let win = null
app.once('ready', () => {
setInterval(() => {
win = new BrowserWindow()
console.log(win.id)
}, 1000)
setInterval(() => {
win.destroy()
}, 2100)
})

关于electron - Electron BrowserWindow ID是否保证在应用程序的生命周期内是唯一的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49434416/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com