gpt4 book ai didi

Qt:使用 QSharedMemory 的单实例应用程序

转载 作者:行者123 更新时间:2023-12-02 01:46:53 25 4
gpt4 key购买 nike

我查看了几个如何创建单实例应用程序的示例,它们都使用了 QSharedMemory 的 create() 和 attach() 方法。为什么他们需要 attach()?

这似乎很完美:

bool SingleInstanceApplication::useSharedMemory()
{
_sharedMemory.setKey(_uniqueKey);

// If shared memory is created and attached successfuly,
// no other application instace is running
bool hasNoPreviousInstance = _sharedMemory.create(1);

return !hasNoPreviousInstance;
}

根据我对文档的理解。这必须足够了。

一个例子是:http://developer.nokia.com/community/wiki/Run_only_one_instance_of_a_Qt_application

最佳答案

他们需要 attach() 因为 create() 可能会因为段已经存在的其他原因而失败。例如,系统可能资源不足,或者为您的应用程序禁用共享内存段创建(例如通过 SELinux)。在这种情况下,create() 将返回 false,但 error() 将返回不同的错误代码(例如 QSharedMemory::OutOfResources),而您将无法发现段已经存在,而 attach() 会发现它。

关于Qt:使用 QSharedMemory 的单实例应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25135678/

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