这些都不起作用:
_uiDispatcher.Invoke(() => { });
_uiDispatcher.Invoke(delegate() { });
Run Code Online (Sandbox Code Playgroud)
我想要做的就是在我的主UI线程上调用内联方法.所以我在主线程上调用了这个:
_uiDispatcher = Dispatcher.CurrentDispatcher;
Run Code Online (Sandbox Code Playgroud)
现在我想从另一个线程在该线程上执行一些代码.我该怎么做?我使用了错误的语法吗?
请注意,这不是 WPF应用程序; 我引用了WindowsBase所以我可以访问Dispatcher该类.
我遇到了完全相同的问题(并没有回答)ElasticSearch NEST Search
我用:
.NET Framework 4.5;
ASP.NET MVC 5;
Elasticsearch 1.6.0(在服务器上);
Elasticsearch.NET 1.6.1
NEST 1.6.1
我有一个MVC控制器,它有两个动作:
索引 - 包含HTML UI表单
搜索 - 包含Elasticsearch.NET客户端和查询.
public ActionResult Search(SearchCreteria sc)
{
Settings settings = new Settings();
Client client = new Client(settings);
ElasticsearchClient esClient = client.Get();
var test = esClient.Search<Contract>(body => body.Query(query => query.QueryString(qs => qs.Query("test"))));
return View(test);
}
Run Code Online (Sandbox Code Playgroud)整个" body => body.Query(query => query.QueryString(qs => qs.Query("test"))) "上面代码中的lambda表达式有下划线的红色下划线,并带有以下工具提示:
(参数)?身体
错误:
无法将lambda表达式转换为类型"object",因为它不是委托类型
我搜索了问题并发现在99%的情况下,人们忘记包含一个程序集,通常是System.Linq.
嗯..我绝对不会忘记添加那个,但我可能我必须包括一个NEST特定组件或类似的东西(我确定不是真的,除了NEST本身),所以我决定添加一切我虽然可能有点相关,我最终得到了这个:
using System;
using System.Collections.Generic;
using …Run Code Online (Sandbox Code Playgroud)