我用 C# 编写了一个并行作业框架,用于从 ElasticSearch 集群导入/导出大量数据。为此,我将单个项目的每个导入或导出建模为一个对象,该对象由框架在某个时刻执行。为了与 ElasticSearch 交互,我使用 NEST(官方 .NET ElasticSearch 客户端库)v1.7.1 和 JSON.Net 7.0.1。
每个导入/导出任务对象都使用 NEST 与 ElasticSearch 交互。出于性能原因,我编写了一个代理类,它将任务对象生成的搜索请求分组为固定大小的批次,以便与 NEST 的 _msearch API 一起使用。此类的调用者将被延迟,直到其批处理返回。该课程可以在这里找到。
我的框架将每个导入/导出任务的结果包装为“bool”或“Exception”。即使遇到个别项目的错误,整个过程也能够继续。
在几个小时的任务完成且没有错误的情况下,我发现以下异常出现了数千次:
System.InvalidOperationException: Current error context error is different to requested error.
at _____.Matcher.<GetBestMatchAsync>d__15.MoveNext() in C:\\_work\\edc7a363\\_____\\Matcher.cs:line 266
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
_____.MatchBlock`1.<ExecuteAsyncInternal>d__19.MoveNext() in C:\\_work\\edc7a363\\_____\\MatchBlock.cs:line 111
--- End of stack trace from previous location where exception …
Run Code Online (Sandbox Code Playgroud) 我正在使用CredentialPicker类来呈现熟悉的UI.正如所料,这将凭证存储在Windows的凭据管理器中.编辑:这里的示例代码
但是,存储用户名/密码的推荐方法似乎是PasswordVault API - 在Windows 8中保存敏感数据的最佳实践 - 它看起来像一个不同的系统?
两者的正确方法是什么?介绍熟悉的用户界面和2.在地铁风格的应用程序中添加,访问和删除用户名/密码?
我正在使用C#,但C++和JS的答案会很好..
我正在使用C#和XAML开发Metro风格的应用程序(适用于Windows 8).我已将我的viewmodels设置为用作设计时datacontexts,如下所示:
xmlns:vm="using:hub.ViewModels"
d:DataContext="{d:DesignInstance IsDesignTimeCreatable=True, Type=vm:ViewModels
Run Code Online (Sandbox Code Playgroud)
我的应用程序在运行时似乎运行正常,但在VS 2012和Blend的设计视图中,我偶尔会得到这个(无用的)错误消息:
An Exception was thrown. TargetException: Error in the application.
Stacktrace
at System.ComponentModel.PropertyChangedEventHandler.Invoke(Object sender, PropertyChangedEventArgs e)
InnerException: None
Run Code Online (Sandbox Code Playgroud)
这仅发生在设计视图-这意味着我不能设置周围的一切我INotifyPropertyChanged的()事件断点.
调试设计时错误的最佳方法是什么?
design-time blend microsoft-metro windows-8 visual-studio-2012
说我有以下类型:
typedef struct TYPEA
{
int type;
char[12] id;
} TYPEA;
typedef struct TYPEB
{
int type;
int value;
} TYPEB;
Run Code Online (Sandbox Code Playgroud)
我想使用创建这些类型和'int'的联合,这样我就可以访问"type"int而无需知道TYPEA或TYPEB是否存储在union中(int的值让我确定实际存储的是哪个那里).虽然我无法获得正确的语法.
我的工会:
typedef union MEMBER
{
int type;
struct TYPEA a;
struct TYPEB b;
} MEMBER;
Run Code Online (Sandbox Code Playgroud)
通过以下方式访问联盟:
typedef struct WRAPPER
{
union MEMBER* member;
struct WRAPPER* next;
} WRAPPER;
Run Code Online (Sandbox Code Playgroud)
问题:
w->member->a.id
会在某些结构或联合中提供"成员'id'请求.谢谢.
CIL是一种面向对象的汇编语言,完全基于堆栈.它的字节码被翻译成本机代码,或者 - 最常见的 - 由虚拟机执行.
为什么我们需要CIL?是不是可以将C#转换为本机代码而不是CIL?如果所有.Net语言都编译成CIL,为什么不使用C#而不是IL?CIL比C#或VB更具表现力吗?
我无法deserialising日期时间与Json.Net 6.0.3(我可以复制在6.0.6的问题).代码在Windows 8.1上的.Net 4.5中运行,文化是en-GB.
这证明了这个问题:
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
var d1 = new DateTimeOffset(2014, 12, 15, 18, 0, 0, TimeSpan.FromHours(1));
var obj = new {
time = d1
};
var json = JsonConvert.SerializeObject(obj, Formatting.Indented);
Console.WriteLine(json);
var jo = JObject.Parse(json);
Console.WriteLine(jo.Value<string>("time") + " // jo.Value<string>(\"time\")");
Console.WriteLine(jo["time"] + " // jo[\"time\"]");
Run Code Online (Sandbox Code Playgroud)
输出:
{
"time": "2014-12-15T18:00:00+01:00"
}
12/15/2014 17:00:00 // jo.Value<string>("time")
15/12/2014 17:00:00 // jo["time"]
Run Code Online (Sandbox Code Playgroud)
日期时间根据JObject的访问方式而有所不同 - 一个是MM/DD/YYYY DD/MM/YYYY.为什么是这样?
我不需要它们采用特定格式:问题是格式改变了.我有很多遗留代码来解析源自Json.Net的日期时间字符串.该代码也将在世界各地的不同计算机上运行,可能具有不同的文化.
有没有办法让Json.Net始终以相同的格式返回日期时间?
我想生成n个不同的Tkinter按钮.我有这个代码:
import Tkinter as tk
for i in range(boardWidth):
newButton = tk.Button(root, text=str(i+1),
command=lambda: Board.playColumn(i+1, Board.getCurrentPlayer()))
Board.boardButtons.append(newButton)
Run Code Online (Sandbox Code Playgroud)
如果boardWidth是5,虽然我得到标记为1-5的按钮,但是当它们单击时它们都会执行Board.playColumn(5,Board.getCurrentPlayer()).
我需要第一个按钮来执行Board.playColumn(1,Board.getCurrentPlayer()),第二个按钮来执行Board.playColumn(2,Board.getCurrentPlayer())等等.
谢谢你的帮助!
我想将字符串拆分为python中的列表,具体取决于数字/非数字.例如,
5 55+6+ 5/
Run Code Online (Sandbox Code Playgroud)
应该回来
['5','55','+','6','+','5','/']
Run Code Online (Sandbox Code Playgroud)
我现在有一些代码循环遍历字符串中的字符并使用re.match("\ d")或("\ D")测试它们.我想知道是否有更好的方法来做到这一点.
PS:必须与python 2.4兼容