小编Cor*_*ger的帖子

Lucene.Net是否管理多个访问同一索引的线程,一个索引而另一个正在搜索?

当使用Lucene.Net和ASP.NET时,我可以想象一个Web请求可以触发对索引的更新,而另一个Web请求正在执行搜索.Lucene.Net是否内置了管理并发访问的能力,或者我是否必须对其进行管理,以避免"被其他进程使用"错误?

编辑:阅读文档和实验后,我认为这是我所学到的:有两个问题,线程安全和并发.多线程是"安全的",因为你不能对索引做任何坏事.但是,以一个锁定索引的对象为代价是安全的.第二个对象将出现并抛出异常.因此,您不能打开搜索并期望另一个线程中的编写者能够更新索引.如果线程正在忙于更新索引,那么尝试创建搜索器将失败.

此外,搜索者会看到索引在打开时的状态,因此如果您保留它们并更新索引,他们将看不到更新.

我希望我的搜索者能够看到最新的更新.

我的设计,到目前为止似乎工作,是我的作家和搜索者共享锁,以便他们不会失败 - 他们只是等待 - 直到当前的写或搜索完成.

asp.net lucene concurrency lucene.net

15
推荐指数
2
解决办法
6561
查看次数

13
推荐指数
3
解决办法
9766
查看次数

用于封闭源应用程序的C++压缩(zip)库

请为商业的闭源应用程序推荐C++压缩(zip)库.所以,不是GPL许可证.

这是我的日常工作......

c++ compression zip

11
推荐指数
2
解决办法
5908
查看次数

使用Sinatra和MongoDB - 什么是"保持活跃"http请求之间的mongodb连接的推荐方法?

我使用过ASP.NET,现在我正在使用Sinatra/MongoDB应用程序.使用ASP.NET体系结构,给定请求使用的数据库连接来自ADO.NET管理的连接池.在请求之间,池中的连接保持活动状态,因此不会为每个http请求支付构建和拆除连接的成本.

Sinatra MongoDB应用程序中是否有类似的机制,或者我是否需要连接/断开每个请求?如果有机制,代码是什么样的?

编辑1:以下不起作用.浏览器发送的每个HTTP请求都会命中new.db行,包括对css,js,jpeg文件的请求.

require 'mongo'
include Mongo

db = Mongo::Connection.new.db("MyDb")

class MyApp < Sinatra::Base
    get '/' do
       etc
Run Code Online (Sandbox Code Playgroud)

ruby sinatra mongodb

11
推荐指数
2
解决办法
8697
查看次数

我可以使用svchost.exe来托管我自己的服务吗?

我找不到如何做的文档,这让我觉得我不应该这样做.

winapi windows-services

10
推荐指数
2
解决办法
5250
查看次数

在Android ListView中,我如何迭代/操纵所有子视图,而不仅仅是可见视图?

下面的代码不会更改所有ListView's行的文本,因为getChildCount()它不会获取所有ListView's行,而只会获取可见的行.

for (int i = 0; i < listView.getChildCount(); i++)
{
    View v = listView.getChildAt(i);
    TextView tx = (TextView) v.findViewById(R.id.mytext);
    tx.setTextSize(newTextSize);
}
Run Code Online (Sandbox Code Playgroud)

所以我该怎么做?

ListView's行变得可见时是否有用于获取通知的代码,因此我可以设置其文本大小?

android android-widget

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

是否有自定义FxCop规则来检测未使用的PUBLIC方法?

我刚试过FxCop.它确实检测未使用的私有方法,但不检测未使用的公共 是否有可以下载的自定义规则,插件将检测未在同一程序集中调用的公共方法?

.net code-analysis fxcop public-method

9
推荐指数
3
解决办法
8338
查看次数

我怎样才能改进/替换sprintf,我认为这是一个性能热点?

通过剖析,我发现这里的sprintf需要很长时间.是否有更好的替代方案仍然处理y/m/dh/m/s字段中的前导零?

SYSTEMTIME sysTime;
GetLocalTime( &sysTime );
char buf[80];
for (int i = 0; i < 100000; i++)
{

    sprintf(buf, "%4d-%02d-%02d %02d:%02d:%02d",
        sysTime.wYear, sysTime.wMonth, sysTime.wDay, 
        sysTime.wHour, sysTime.wMinute, sysTime.wSecond);

}
Run Code Online (Sandbox Code Playgroud)

注意:OP在评论中解释说这是一个精简的例子."真实"循环包含使用来自数据库的不同时间值的附加代码.分析已经确定sprintf()为罪犯.

c c++ performance printf strftime

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

为了让它在共享主机上的中信任下运行,AVOID编码到我的ASP.NET应用程序中最常见,最典型的事情是什么?

Medium Trust阻止您做什么?例如,我已经了解到中信任阻止您使用System.IO.Path.GetTempPath().那还有什么呢?

asp.net security trust shared-hosting medium-trust

8
推荐指数
1
解决办法
1312
查看次数

我在哪里将代码放在我想要执行一次的Sinatra(ruby web框架)中?

我不知道这是一个红宝石问题还是一个Sinatra问题,因为我对两者都不熟悉.以下代码不起作用,我理解为什么,因为第一个my_variable是其块的本地.我只是不知道正确的语法.

require 'rubygems'
require 'sinatra'

configure do
    my_variable = "world"
end

get '/' do
    "Hello " + my_variable
end
Run Code Online (Sandbox Code Playgroud)

EDIT1 - 以下工作,但我想我对配置块的正确用途感到困惑.

require 'rubygems'
require 'sinatra'

my_variable = "world"

get '/' do
    "Hello " + my_variable
end
Run Code Online (Sandbox Code Playgroud)

ruby sinatra

7
推荐指数
1
解决办法
4077
查看次数