2012-08-22 154 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中簡單地包裝) –