草庐IT

$Signals

全部标签

c++ - 如何使用 boost::signals2 存储和转发槽?

我有一个问题,我必须实例化对象的实例比我想做的要早,因为我需要连接信号通过一些深刻的所有权,我想提出一种方法存储和转发插槽,以便我可以更近地构建对象到他们的使用站点,而不是作为成员变量。我的基本问题是我有一个将下载更新的进程在一个单独的线程上归档并向任何正在处理的人发送进度信号感兴趣的。信号本质上是:typedefboost::signals2::signalDownloadProgress;假设提到的progress函数的实现下面符合这个;信号本身的性质不是很重要(尽管我大部分时间都在使用仿函数)。信号已设置,代码如下所示:Updaterupdater;updater.onDownl

c++ - Qt #define "signals"与 GStreamer (gst) 冲突

Qt,它似乎用一个初始的Q来命名其他所有东西,这样做:#definesignalssignalsinqobjectdefs.h。然而,GStream并不自然地不会将signals想象成一个保留字,而是这样做struct_GDBusInterfaceInfo{/**/volatilegintref_count;gchar*name;GDBusMethodInfo**methods;GDBusSignalInfo**signals;在gdbusintrospection.h中。我只是假设Qt和GStreamer不能很好地协同工作,还是有办法解决这个问题?注意:如果我不#defineQ_MO

c++ - c++ 类访问关键字 "signals"是什么意思?

我遇到了类似这样的声明(根据NDA更改了名称):classFoo{intbar;public:explicitFoo(Fu*parent=NULL);private:voidsomefunc(String);signals://???whatdoesthisdo???voidwindowClosed();};这是由g++4.4.7(大约从2012年开始)成功编译的。此外,vim将其识别为类似于public和private的关键字,并以棕色高亮显示它们。(Dis)同样,vim用绿色高亮关键字namespace,class,void,int,double、float、char、unsign

signals - 处理 PHP ^C CLI 脚本

我有一个24/7全天候在后台运行的php脚本。我不得不偶尔终止它,脚本的要点是将交易数据从比特币RPC缓存到memcahced(如果你不知道那是什么,那是无关紧要的)。我希望脚本在程序接收到^C(控制C)上发送的信号时执行函数。 最佳答案 你可能想要pcntl_signal.您需要捕获的信号是SIGINT。 关于signals-处理PHP^CCLI脚本,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

c++ - 在 boost::signals2 中混合 boost 智能指针和 C++11 智能指针

我有一个应用程序使用boost::signals2在组件之间进行通信。我正在尝试通过slot_type(...).track(weak_ptr)使用它的自动连接管理功能。问题:在我的整个程序中,使用了std::shared_ptr。.track需要一个boost::weak_ptr,而我提供一个std::weak_ptr。这是我遇到的确切错误:cannotconvertargument1from'std::weak_ptr'to'constboost::weak_ptr&'有解决办法吗?还是我误解了问题? 最佳答案 我找到了解决办法

c++ - 使用 boost::signals2 编译时间非常慢

我们有一个大型代码库,多年来已成功使用boost::signals。我们最近转向boostv1.54,并决定由于boost::signals已被弃用,我们将切换到boost::signals2。我们看到的问题是编译时间太长了。例如,一个小的.cpp文件现在需要20多秒,而过去需要4秒。同样,过去需要大约10分钟才能生成的我们的一个库(大型)现在最多需要一个小时。我到处搜索有关如何通过预编译头文件、宏等改进这一点的文档,但还没有找到任何可以大大改善这种情况的方法。在procmon中查看cl.exe会发现大量IO进入boost::signals2和mpl库。此时我们不需要signals2提

Python GTK+ : create custom signals?

是否可以在PythonGTK+中创建新信号?请给我一个框架代码示例。 最佳答案 节选:CreatingyourownsignalsTheotherthingyouprobablywanttousewhensubclassingGObjectisdefinecustomsignals.Youcancreateyourownsignalsthatcanbeemittedsousersofyourclasscanconnecttothem.Whenasignalisemittedasetofclosureswillbeexecuted.A

python - 是否有像 Django 信号一样提供 'signals'(事件)功能的通用 Python 库?

我想使用类似Djangosignals的东西在非Django项目中。我以为我以前见过这样的图书馆,但我一直无法通过常规搜索找到一个图书馆。Python'ssignallibrary不提供相同的功能。 最佳答案 为此有许多模块。以下是一些选项,按我认为它们的受欢迎程度排序:blinker模块提供信号/事件机制PyDispatcher给你事件调度PySignals模块是Django信号模块,不依赖于DjangoSpiffSignal实现了信号/事件框架,但它的GitHub页面似乎丢失了 关于

docker - 初始化 : true does not forward signals

我希望我的dockerized进程能够正确处理终止信号,所以我使用init:true。我在我的docker-compose.yml文件中使用以下代码:version:'3.7'services:foo:build:context:./fooinit:true但是,我的进程没有收到信号。当我在docker外部运行我的进程并按下Ctrl-C时,我可以看到正在处理信号(我的程序在信号处理程序中打印一条消息),但在内部docker没有处理信号(我的程序没有打印消息)编辑:这是foo/Dockerfile:FROMgolang:1.11.4-alpine3.8ASbuildWORKDIR/go/

signals - 在执行结束时执行操作

我有一个http服务器(使用http.Handle启动),我想做一些操作。我该怎么做(在Linux上)?在ctrl-C的情况下是否可以执行这些操作?我不熟悉unix信号,所以答案可能很简单。 最佳答案 使用kostixanswer,我构建了这段代码(现在适用于Go1)来捕捉中断信号并在退出前做一些操作:gofunc(){sigchan:=make(chanos.Signal)signal.Notify(sigchan,os.Interrupt) 关于signals-在执行结束时执行操作,