Tag: C#的

如何将枚举绑定到combobox

我将绑定一个枚举的值与一个combobox控件。 我已经写了这个代码: cboPriorLogicalOperator.DataSource = Enum.GetValues(typeof(MyEnum)) .Cast<MyEnum>() .Select(p => new { Key = (int)p, Value = p.ToString() }) .ToList(); myComboBox.DisplayMember = "Value"; myComboBox.ValueMember = "Key"; 它运作良好,但我想知道是否有一个更简单的方法。

decltype(“Hello”)的结果是什么?

我收到了所有编译器的意外结果(GCC 4.7.2,GCC 4.8.0 beta,ICC 13.0.1,Clang 3.2,VC10): #include <type_traits> int main() { // This will fire static_assert( std::is_same<decltype("Hello"), char const[6]>::value, "Error!" ); } 我希望上面的编译时间断言不会触发,但它确实如此。 毕竟,这不是(如预期): #include <type_traits> int main() { char const hello[6] = "Hello"; // This will not fire static_assert( std::is_same<decltype(hello), char const[6]>::value, "Error!" ); } 那么根据C ++ 11标准, decltype("Hello")的结果是什么(高度赞赏引用)? 我应该如何比较以便上面的编译时间断言不会触发?

使用谷歌Chrome沙盒

这里有几个资源解释了Chrome中的沙箱是如何工作的以及如何保护用户免受恶意代码的侵害。 铬博客 Chromium开发者文档 沙盒常见问题 这很好,而且我喜欢他们所使用的以操作系统为中心的devise(有些“操作系统可能知道如何保护自己比我们更好,所以我们让它”)。他们还提到在几个地方,沙箱本身被devise成不依赖于Chrome,而是多多lessless的独立,所以只要程序架构是兼容的,理论上任何进程都可以被沙箱化(沙箱代码必须作为它自己的进程非沙盒家长。) 我只是碰巧有一个应用程序,它的devise使得沙盒成熟,并能够得到一个父/子过程使用它。 我有Chromium代码,不知道下一步该怎么做。 有没有人真的用这个沙盒什么呢? 有没有资源logging它的使用情况或API? 我可以想象它应该是非常简单的,但我从哪里开始的损失。 编辑:我的发现下面的答案!

如何在Linux上分析multithreadingC ++应用程序?

我曾经用gprof来完成我所有的Linux分析。 但是,对于我的multithreading应用程序,它的输出看起来不一致。 现在,我挖了这个: http://sam.zoy.org/writings/programming/gprof.html 但是,从很久以前,在我的gprof输出中,似乎我的gprof列出了非主线程使用的函数。 所以,我的问题是: 1)2010年,我可以轻松使用gprof来分析multithreadingLinux C ++应用程序吗? ( Ubuntu 9.10 )2)我应该考虑哪些其他工具来进行性能分析?

如何search巨大的非文本数据集?

在我工作的一个项目中,客户有一个旧的和巨大的(TB级)RDBMS。 所有types的查询都很慢,没有时间修复/重构模式。 我已经确定了需要优化的一组常用查询。 该组分为两部分:全文和元数据查询。 我的计划是从数据库中提取数据,并将其分区到两个不同的存储系统,每个存储系统都针对特定的查询集进行了优化。 对于全文search,Solr是最有意义的引擎。 这是分片和复制function,使它非常适合问题的一半。 对于元数据查询,我不知道要采取什么路线。 目前,我正在考虑使用一个非常规规范化模式的RDBMS,它表示来自“权威”RDBMS的特定数据子集。 然而,我的客户担心这种子系统缺乏分片和复制function,而与已经包含这些function的Solr相比,设置这些function的困难/复杂性更为困难。 在这种情况下,元数据采用整数,date,布尔,位和string(最大大小为10个)的forms。 是否有一个数据库存储系统具有内置的分片和复制function,可能对查询元数据特别有用? 也许一个没有SQL的解决scheme提供了一个好的查询引擎? 请照亮。 添加/回应: Solr可以用于元数据,但是元数据是不稳定的。 所以,我不得不经常去索引。 这会导致search速度非常快。

特征:编码风格对性能的影响

从我读到的Eigen( 这里 )看来, operator=()似乎是懒惰评估的“障碍” – 例如它会导致Eigen停止返回expression式模板并实际执行(优化的)计算,将结果存储在=的左侧。 这似乎意味着一个人的“编码风格”对性能有影响 – 即使用命名variables来存储中间计算结果可能会对性能产生负面影响,因为计算的某些部分“过早” 。 为了validation我的直觉,我写了一个例子,并对结果感到惊讶( 完整的代码在这里 ): using ArrayXf = Eigen::Array <float, Eigen::Dynamic, Eigen::Dynamic>; using ArrayXcf = Eigen::Array <std::complex<float>, Eigen::Dynamic, Eigen::Dynamic>; float test1( const MatrixXcf & mat ) { ArrayXcf arr = mat.array(); ArrayXcf conj = arr.conjugate(); ArrayXcf magc = arr * conj; ArrayXf mag = magc.real(); return mag.sum(); […]

MinGW .exe需要几个gcc dll,不pipe代码如何?

当使用MinGW编译时,我必须在exe文件运行之前从MinGW bin目录中复制某些dll文件(即使使用“-static”和/或“-static-libstdc ++”。)如何更改? 有没有我必须使用的MinGW的特殊版本? 最终,我希望能够在目录中运行除了exe以外的任何程序(并且没有设置windows环境variables)。这些文件是: 的libstdc ++ – 6.dll libgcc_s_seh-1.DLL libwinpthread-1.DLL 这里是步骤的完整列表我休耕: 打开Code :: Blocks select“文件 – >新build – >项目 – >控制台” 填写项目“Hello World”的项目设置 右键点击Project-> Build Options …-> Hello World(Root target) – > Other Options 在已经设置的“-fexceptions”下input“-static”(或“-static-libstdc ++” CTRL-F9:生成项目(不执行) 在Windows资源pipe理器中导航到并运行内置的“Hello World.exe”文件。 点击“确定”时,popup一个消息说:“错误:libstdc ++ – 6.dll从您的计算机丢失。 从/ MinGW / bin /目录复制“libstdc ++ – 6.dll”到“Hello World.exe”目录。 运行“Hello World.exe” […]

为什么我会打扰使用Task.ConfigureAwait(continueOnCapturedContext:false);

考虑下面的Windows窗体的代码: private async void UpdateUIControlClicked(object sender, EventArgs e) { this.txtUIControl.Text = "I will be updated after 2nd await – i hope!"; await Task.Delay(5000).ConfigureAwait(continueOnCapturedContext: false); this.txtUIControl.Text = "I am updated now."; } 这里在第三行抛出exception,因为在等待代码在非UI线程上执行之后。 ConfigureAwait(false)有用吗?

我怎么知道什么监视器的WPF窗口

在C#应用程序中,如何查找WPF窗口是否在主监视器或另一个监视器中?

互斥锁的function是否足够没有易失性?

我和同事一起编写运行在x86,x64,Itanium,PowerPC和其他10年历史的服务器CPU上的各种平台的软件。 我们只讨论了pthread_mutex_lock(),pthread_mutex_unlock()等互斥函数是否足够,或者被保护的variables是否需要变化。 int foo::bar() { //… //code which may or may not access _protected. pthread_mutex_lock(m); int ret = _protected; pthread_mutex_unlock(m); return ret; } 我关心的是caching。 编译器是否可以在堆栈或寄存器中放置_protected的副本,并在赋值中使用陈旧的值? 如果不是,什么阻止了这种情况发生? 这种模式的变化是脆弱的吗? 我认为编译器实际上并不知道pthread_mutex_lock()是一个特殊的函数,所以我们只是通过序列点保护? 非常感谢。 更新:好的,我可以看到一个趋势与解释为什么波动是不好的。 我尊重这些答案,但关于这个问题的文章很容易在网上find。 我在网上找不到的东西,也是我问这个问题的原因,就是我没有变化的保护。 如果上面的代码是正确的, 那么对于caching问题怎么办?