问题列表 - 第17219页

提升:Boost.Signals中究竟不是线程安全的?

我在多个地方读到Boost.Signals不是线程安全但我没有找到更多关于它的细节.这个简单的引用并没有说真的那么多.现在大多数应用程序都有线程 - 即使它们试图是单线程的,它们的一些库也可能使用线程(例如libsdl).

我想实现没有其他线程无法访问插槽的问题.所以在这个意义上它至少是线程安全的.

但到底有什么作用,哪些不行?只要我不同时访问它,它是否可以在多个线程中使用它?即如果我在插槽周围建立自己的互斥锁?

或者我被迫只在我创建它的那个线程中使用插槽?或者我第一次使用它的地方?

c++ boost boost-signals

9
推荐指数
1
解决办法
2129
查看次数

在单个ics文件中分组多个事件(icalendar流)

我想根据RFC将多个事件分组到一个ICS文件(iCalendar流)中.这可以做,但我不知道如何.任何人都可以帮助我或给我一个例子吗?

以下是rfc所说的:

但是,多个iCalendar对象可以
在iCalendar流中顺序组合在一起.iCalendar对象的第一行和最后一行必须包含一对iCalendar对象分隔符
字符串.iCalendar流的语法如下:

 icalstream = 1*icalobject

 icalobject = "BEGIN" ":" "VCALENDAR" CRLF
              icalbody
              "END" ":" "VCALENDAR" CRLF
Run Code Online (Sandbox Code Playgroud)

icalendar

30
推荐指数
1
解决办法
4万
查看次数

使用git,如何在冲突期间"使用他们的"?

使用git,如何进行"使用他们的"类型分支合并命令?此命令应该只使用origin的版本覆盖我的本地版本.

git merge

12
推荐指数
1
解决办法
4399
查看次数

给定C#类型,获取其基类和实现的接口

我正在研究C#中的游戏引擎.我正在研究的课程被称为CEntityRegistry,它的工作是跟踪CEntity游戏中的许多实例.我的目标是能够CEntityRegistry使用给定的类型查询,并获得每种CEntity类型的列表.

因此,我想做的是维护一张地图:

private IDictionary<Type, HashSet<CEntity>> m_TypeToEntitySet;
Run Code Online (Sandbox Code Playgroud)

并因此更新注册表:

private void m_UpdateEntityList()
        {
            foreach (CEntity theEntity in m_EntitiesToRemove.dequeueAll())
            {
                foreach (HashSet<CEntity> set in m_TypeToEntitySet.Values)
                {
                    if (set.Contains(theEntity))
                        set.Remove(theEntity);
                }
            }
            foreach (CEntity theEntity in m_EntitiesToAdd.dequeueAll())
            {
                Type entityType = theEntity.GetType();
                foreach (Type baseClass in entityType.GetAllBaseClassesAndInterfaces())
                  m_TypeToEntitySet[baseClass].Add(theEntity);

            }
        }
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是没有功能Type.GetAllBaseClassesAndInterfaces- 我将如何写它?

c# reflection inheritance types

6
推荐指数
3
解决办法
2万
查看次数

调用进程时程序停止运行

我正在尝试创建一个使用CreateProcess调用另一个进程的程序.遇到一些问题后,我将程序更改为只打开一个已知程序:

if( !CreateProcess( (LPWSTR)"C:\\Program Files\\Opera\\Opera.exe",   // No module name (use command line)
    NULL,                       ,
            // Command line
    NULL,           // Process handle not inheritable
    NULL,           // Thread handle not inheritable
    FALSE,          // Set handle inheritance to FALSE
    0,              // No creation flags
    NULL,           // Use parent's environment block
    NULL,           // Use parent's starting directory 
    &si,            // Pointer to STARTUPINFO structure
    &pi )           // Pointer to PROCESS_INFORMATION structure
) 
Run Code Online (Sandbox Code Playgroud)

我在msdn中找到了这个例子,但是每次运行我的程序时,windows(Vista)都显示错误消息:程序停止运行...

有谁知道这是什么问题?

此致,Leandro Lima

c++ windows

0
推荐指数
1
解决办法
422
查看次数

有没有办法将MATLAB工作区推入堆栈?

有谁知道在MATLAB中是否可以有一堆工作空间?至少可以说非常方便.

我需要这个用于研究.我们有几个脚本以有趣的方式进行交互.函数有局部变量,但没有脚本......

workspace matlab stack

13
推荐指数
2
解决办法
3109
查看次数

我什么时候应该使用复合索引?

  1. 我应该何时在数据库中使用复合索引?
  2. 使用复合索引的性能分支是什么?
  3. 我为什么要使用复合索引?

例如,我有一张homes桌子:

CREATE TABLE IF NOT EXISTS `homes` (
  `home_id` int(10) unsigned NOT NULL auto_increment,
  `sqft` smallint(5) unsigned NOT NULL,
  `year_built` smallint(5) unsigned NOT NULL,
  `geolat` decimal(10,6) default NULL,
  `geolng` decimal(10,6) default NULL,
  PRIMARY KEY  (`home_id`),
  KEY `geolat` (`geolat`),
  KEY `geolng` (`geolng`),
) ENGINE=InnoDB  ;
Run Code Online (Sandbox Code Playgroud)

是否有意义,我使用的复合指数都geolatgeolng,这样的:

我替换:

  KEY `geolat` (`geolat`),
  KEY `geolng` (`geolng`),
Run Code Online (Sandbox Code Playgroud)

有:

KEY `geolat_geolng` (`geolat`, `geolng`)
Run Code Online (Sandbox Code Playgroud)

如果是这样:

  • 为什么?
  • 使用复合索引的性能分支是什么?

更新:

由于很多人都声明它完全依赖于我执行的查询,因此下面是最常见的查询:

SELECT * FROM homes
WHERE geolat BETWEEN ??? AND …
Run Code Online (Sandbox Code Playgroud)

mysql indexing composite-index

122
推荐指数
6
解决办法
6万
查看次数

HTML DOM宽度+可见窗口的高度

如何在浏览器打开时获取可用空间的当前高度和宽度.

我不想要整个文档的高度,只是屏幕上可见的内容.

html height dom width

14
推荐指数
2
解决办法
3万
查看次数

为什么要使用AMQP/ZeroMQ/RabbitMQ

而不是写自己的图书馆.

我们正在开发一个项目,这个项目将是一个自我划分的服务器池,如果一个部分变得太重,管理员会将其划分并将其作为一个单独的进程放在另一台机器上.它还会警告所有连接的客户端,这会影响连接到新服务器.

我很好奇使用ZeroMQ进行服务器间和进程间通信.我的伴侣宁愿自己动手.我期待社区回答这个问题.

我自己是一个相当新手的程序员,只是学习了消息队列.正如我用Google搜索和阅读,似乎每个人都在使用消息队列来处理各种各样的事情,但为什么呢?是什么让他们比编写自己的图书馆更好?为什么它们如此常见,为什么会有这么多?

messaging amqp rabbitmq zeromq

73
推荐指数
4
解决办法
2万
查看次数

完整的C语言的x86/x64 JIT汇编程序

你知道的东西,就像这样,而是嵌入在C程序?

assembly jit

3
推荐指数
1
解决办法
1541
查看次数