如何检测用户控件是在IDE中,在调试模式下还是在已发布的EXE中运行?

我有一个用户控件,我正在构建。 它的目的是向用户显示类的状态。 显然,这并不重要,并且当控件在IDE中运行时会降低速度,就像将其添加到表单中一样。 解决此问题的一种方法是在运行时创建控件并将其添加到窗体的控件集合中。 但这似乎并不完美。 有没有办法在控件中设置一个标志,以便它可以根据它的运行方式跳过某些代码段? ps我正在使用C#和VS 2008

嵌套的Parallel.ForEach循环在同一个列表中?

我需要并行化一个方法,该方法对列表中的元素进行详尽的成对比较。 串行实现很简单: foreach (var element1 in list) foreach (var element2 in list) foo(element1, element2); 在这种情况下,foo不会改变element1或element2的状态。 我知道简单地执行嵌套的Parallel.ForEach语句是不安全的: Parallel.ForEach(list, delegate(A element1) { Parallel.ForEach(list, delegate(A element2) { foo(element1, element2); }); }); 使用并行任务库实现此目的的理想方法是什么?

在C#中,使用值类型与引用类型

我的问题是: 什么时候我们应该使用值类型和引用类型? 一个优于其他的优点和缺点是什么? 如果在任何地方使用引用类型怎么办 它有什么危害吗? 还请讨论每个的优点和缺点。 我也想了解这一点。

MediaCapture + CaptureElement生命周期/导航管理

这是在Windows Phone 8.1商店应用程序中。 我的MainPage有一个CaptureElement来显示来自MediaCapture对象的预览流。 对于应用程序内的导航(页面之间),这很有效: MediaCapture mc; protected override async void OnNavigatedTo(NavigationEventArgs e) { mc = new MediaCapture(); await mc.InitializeAsync(); preview.Source = mc; await mc.StartPreviewAsync(); } protected override async void OnNavigatedFrom(NavigationEventArgs e) { await mc.StopPreviewAsync(); } 我可以导航到其他页面并返回,预览可靠地运行。 我遇到了以下情况的问题: 用户按下Windows按钮,然后按后退按钮 用户按下Windows按钮,然后使用任务切换器返回我的应用程序 用户按下搜索按钮,然后按下后退按钮 用户按下电源按钮,然后再次按下并向上滑动以解锁设备 用户按住后退按钮进入任务切换器,然后再次点击我的应用程序 在上述每个操作(和/或它们的组合)之后,当我的应用程序返回时,预览将冻结在显示的最后一帧。 如果用户然后导航到另一个页面然后返回到MainPage,则预览会再次开始运行而不会出现问题,因此这让我相信我只需要在从上述场景之一返回后停止/启动预览。 我尝试订阅App.Suspending和App.Resuming事件,但这些都不会在这些情况下触发。 我错过了什么?

Linq嵌套列表表达式

我需要你对Linq表达的帮助: 我有嵌套的列表对象,这是主对象层次结构的样子(每个破折号是子类的属性): Folder -name -List Subfolders -name -List Documents -name -key 拥有这个对象层次结构,我有一个文档名称,我想搜索它并返回其父文件夹(子文件夹) 例: Folder -name: Customer -List Subfolders -name: Personal -List Documents -name: Resume -key : 1 如果我说:“恢复”,linq表达式应该返回我:子文件夹“Personal”(对象)。 请帮助我,因为有两个嵌套的列表我遇到了麻烦,一个很容易。 提前致谢。

我可以将二进制文件放入stdin吗? C#

与此问题相关的问题用7z加密二进制文件没有文件名? 在C#中我如何将二进制文件放入STDin? 我希望下面的内容可以正常运行,但它不会。 这是有道理的。 那么我如何推送一个byte []数组呢? new BinaryWriter(p.StandardInput.FormatProvider);

托管代码中是否可能存在内存泄漏? (特别是C#3.0)

例如,如果我有一个分层数据结构: class Node { public List children; } 然后在其中一个父母中填充到很多级别: myNode.children.Clear(); 这将清除所有对直系孩子的提及 – 但那些直系孩子所引用的所有大孩子,大孙子等等呢? C#聪明到知道它们不再需要它们会被垃圾收集吗? 我已阅读使用WPF数据绑定而没有实现接口INotifyChanged可能导致内存泄漏: http : //blogs.msdn.com/b/micmcd/archive/2008/03/07/avoiding-a-wpf-memory-leak-with-数据绑定-black-magic.aspx ,在托管环境中这怎么可能?

C# – 在活动目录中查找用户管理器

开始使用System.DirectoryServices.AccountManagement命名空间,对Active Directory(AD)中的用户执行查找。 我还需要用户的经理 ,但我似乎在使用这个命名空间遇到了麻烦。 获取一个人的当前代码: class Person { // Fields public string GivenName = null; public string Surname = null; public string DistinguishedName = null; public string Email = null; public string MangerDistinguishedName = null; // Unable to set this // Constructor public Person(string userName) { UserPrincipal user = null; try { user = GetUser(userName); […]

为什么我不能在.NET asmx Web服务中公开接口?

我有一个.NET Web服务(使用asmx …还没有升级到WCF)暴露了以下内容: public class WidgetVersion1 : IWidget {} public class WidgetVersion2 : IWidget {} 当我尝试绑定到Web服务时,出现以下序列化错误: 无法序列化IWidget类型的成员WidgetVersion1,因为它是一个接口。 我已经尝试将各种属性添加到IWidget接口( XmlIgnore , SoapIgnore , NonSerialized ),但它们在接口上无效。 有谁知道为什么我无法公开界面? 我假设WSDL不支持接口,但是.NET不能通过简单地不对接口进行序列化来解决这个问题吗? 除了从WidgetVersion1和WidgetVersion2类定义中删除IWidget接口之外,还有什么方法吗?

需要重载operator <和null检查

我在c#中重载了lessthan-operator,我想知道这是否需要检查null。 您可以在下面找到一个示例: public static bool operator <(MyClass x, MyClass y) { if (x == null && y == null) { return false; } if (x == null) { return true; //false? } if (y == null) { return false; //true? } return x.Value < y.Value; } 或者这是正确的: public static bool operator <(MyClass x, MyClass y) […]