2012-08-22 118 views
0

是否可以在遵循APM(begin,end)模式的SolrNET中进行异步操作?我需要在Asp.NET Web应用程序中对不同的Solr搜索索引进行几次异步调用,并试图通过使用非阻塞线程来减少线程池上的负载。请指教。谢谢。SolrNet中的异步操作

+0

http://code.google.com/p/solrnet/issues/detail?id=120 –

回答

1

至少在浏览the SolrNet source时,虽然IHttpWebRequest接口包含Begin/End对,但在接口(如ISolrConnection)中不会使用/暴露更高的值,因此AFAICT必须更改(或重新实现)到支持它。

也就是说,它可能值得直接尝试它(用Task.Run或类似的东西踢它们),看看你是否真的饿死了线程池 - 如果你这样做,你可以用更高的限制来重新配置它, 毕竟。 :)

制作SolrNet基于任务的通过TAP将可能的精力很大一部分,因为你通常需要通过堆栈的所有级别进行异步/任务(在SolrNet的情况下,也许应该只是这样做在目标为4.5的叉子中,因此它可以依赖于新的HttpClient及其本地基于任务的调用)

+1

如果任何人为此,请不要使用.NET 4+异步。我不打算很快放弃.NET 3.5,所以使用begin/end(然后可以在Task中简单地包装) –