小编kam*_*ber的帖子

如何在Visual Studio中仅调试一个线程

我希望能够在调试时只跟踪一个线程的执行.我使用线程池,因此调试器不断在线程之间切换,这使得调试非常不舒服.

读:

我得到一个解决方案,它是条件断点(基于线程的名称).但是,我不能说"线程#3"总是处理有趣的情况,所以我必须改变每次执行的条件.太多的工作.

另一个解决方案是使用冻结/解冻功能只使我有趣的线程运行.但是,这会使某些信息不可用,因为所有线程都已暂停.

我现在使用的是让程序运行直到我到达断点,我肯定会在好的线程中.然后我暂停线程池的所有其他线程并尝试恢复执行.如果程序似乎卡住了,我暂停,解冻当前线程.

理想的解决方案是找到正确的线程,标记它然后对Visual Studio说:" 只有当前线程被标记时才会中断 ".

这甚至可能吗?

.net debugging multithreading visual-studio-2010

26
推荐指数
2
解决办法
1万
查看次数

知道mongodb中的实际块大小

我试图在我的一个分片集合中找到所有块的大小.

我想知道真正的 大小,而不是作为我知道我可以找到的设置的mongos提示:

use config
db.settings.find({_id : "chunksize"})
Run Code Online (Sandbox Code Playgroud)

我尝试了几种解决方案,但计数操作非常慢,所以这并不容易.你知道解决方案吗?(shell,csharp,python,ruby,bash,我不在乎)

现在我测试了以下内容:

db.getSisterDB("config").chunks.find({ns : "mydb.mycollection"}).forEach(function(chunk) {
     db.getSisterDB("mydb").mycollection.find({},{_id : 0, partnerId , 1, id : 1}).min(chunk.min).max(chunk.max).count()
})
Run Code Online (Sandbox Code Playgroud)

但这太慢了,我的印象是它不使用我的分片键上的索引(打开{partnerId : 1, id : 1}).

我也用没有任何运气的解释取代了伯爵.我还用javascript forEach替换了count来手动计数(尝试使用不会命中磁盘的indexOnly查询).

我试图找到真正的大小,因为我已经看到几个块远远高于chunksize给出的提示(2Gb而不是64Mb).

sharding mongodb

8
推荐指数
2
解决办法
2938
查看次数

如何在ruby中将任何方法转换为中缀运算符

在诸如Haskell的某些语言中,可以使用任何带有两个参数的函数作为中缀运算符。

我觉得这种表示法很有趣,并且希望在红宝石中也能达到同样的效果。

给定一个假想的方法or_if_familiar ,我想能够写类似"omg" or_if_familiar "oh!",而不是or_if_familiar("omg", "oh!")

如何在ruby中创建这样的符号(不修改ruby本身)?

ruby metaprogramming operators

2
推荐指数
1
解决办法
825
查看次数