.net SolrNet中的异步操作

.net SolrNet中的异步操作,.net,multithreading,solr,task-parallel-library,solrnet,.net,Multithreading,Solr,Task Parallel Library,Solrnet,是否可以在SolrNET中按照APM(开始,结束)模式进行异步操作?我需要在我的Asp.NET web应用程序中对不同的Solr搜索索引进行几个异步调用,我正试图通过使用非阻塞线程来减少线程池的负载。请告知。谢谢。至少仔细看看,虽然IHttpWebRequest接口包括开始/结束对,但这些对在接口中没有使用/暴露在更高的位置(如ISolrConnection),因此您必须更改(或重新实现)这些对以支持它 也就是说,可能值得尝试一下(用Task.Run或类似的方法启动他们),看看你是否真的会耗尽线

是否可以在SolrNET中按照APM(开始,结束)模式进行异步操作?我需要在我的Asp.NET web应用程序中对不同的Solr搜索索引进行几个异步调用,我正试图通过使用非阻塞线程来减少线程池的负载。请告知。谢谢。

至少仔细看看,虽然IHttpWebRequest接口包括开始/结束对,但这些对在接口中没有使用/暴露在更高的位置(如ISolrConnection),因此您必须更改(或重新实现)这些对以支持它

也就是说,可能值得尝试一下(用Task.Run或类似的方法启动他们),看看你是否真的会耗尽线程池——如果你这样做了,你可以用更高的限制重新配置它。:)

通过TAP使SolrNet基于任务可能是一项很好的工作,因为您通常需要在堆栈的所有级别执行异步/任务(对于SolrNet来说,可能只需要在目标为4.5的fork中执行异步/任务,这样它就可以依赖新的HttpClient及其基于任务的本机调用)

至少仔细查看,虽然IHttpWebRequest接口包含开始/结束对,但这些对在接口中没有使用/公开(如ISolrConnection),因此您必须更改(或重新实现)这些对以支持它

也就是说,可能值得尝试一下(用Task.Run或类似的方法启动他们),看看你是否真的会耗尽线程池——如果你这样做了,你可以用更高的限制重新配置它。:)


通过TAP使SolrNet基于任务可能是一项很好的工作,因为您通常需要在堆栈的所有级别执行异步/任务(对于SolrNet,可能只需要在目标为4.5的fork中执行异步/任务,这样它就可以依赖新的HttpClient及其本机基于任务的调用)

如果有人打算这样做,请不要使用.NET 4+异步。我不打算很快放弃.NET3.5,所以请使用begin/end(它可以被简单地包装在任务中),如果有人要处理这个问题,请不要使用.NET4+async。我不打算很快放弃.NET3.5,所以使用begin/end(它可以简单地包装在任务中)