草庐IT

时有发生

全部标签

C# 捕获 ThreadPool 上发生的异常

我正在调查我的应用程序中由Win32异常引起的一些崩溃,我已经缩小了它必须发生在处理EventLog.EntryWrittenEventHandler事件处理程序的线程池中的范围我的应用程序。我是这样设置的://CreatetheeventlogmonitoreventLog.Log="Application";eventLog.EnableRaisingEvents=true;eventLog.EntryWritten+=newEntryWrittenEventHandler(EventLogMonitor);EventLogMonitor是我的事件的处理程序。我想知道是否有人知道我

c# - 在多个窗口中使用 WPF WebBrowser 控件时发生内存泄漏

我正在开发一个使用WPFWebBrowser控件(System.Windows.Controls.WebBrowser)的项目。该程序的Web浏览器元素是用户可以参与的众多事件之一,并在单独的窗口中打开。用户离开浏览器后,窗口关闭,每次用户返回浏览器时都会创建一个新窗口。我们注意到在持续使用浏览器时,我们的程序出现了显着的内存泄漏/性能下降(使用量从最初的~200mb上升到~700mb)。在我们自己的代码中未能找到任何资源泄漏点之后,我决定确定问题是出在我们自己的WebBrowser包装器控件上,还是出在WPF控件上。我创建了一个新的简单项目,其中仅包含一个MainWindow和一个W

c# - .NET 可移植类库中的 .ToShortDateString 发生了什么

我想知道为什么.NET可移植类库中没有.ToShortDateString。我有2个使用相同代码的项目(Silverlight和常规.NET类库),代码涉及在DateTime对象上调用.ToShortDateString()。为了重用相同的代码而不是在两个地方复制它,我创建了一个可移植类库,这样它就可以被Silverlight和.NET类库导入。不幸的是,在使用类库时,.ToShortDateString()似乎不可用。我可以在可移植类库方法中接受一个字符串参数,并从silverlight和类库项目中传递.ToShortDateString()值,但我想知道为什么这个方法不是可移植库的

c# - 当我们创建接口(interface)对象时会发生什么?

这个问题在这里已经有了答案:UsingInterfacevariables(12个答案)关闭9年前。我是C#接口(interface)的新手。那么有人可以解释一下当我们创建接口(interface)对象时实际发生了什么吗?我知道为什么我们有其他语言的接口(interface),但无法真正理解为什么C#允许创建接口(interface)的对象(实例)的逻辑?如果接口(interface)没有函数定义或变量,那么如何创建对象?我一直在论坛上搜索,但找不到要点。这是我在界面上找到的教程http://www.c-sharpcorner.com/uploadfile/6897bc/interfa

c# - 如何捕获在 (WPF) 窗口外发生的鼠标事件?

我有一个Window元素,它有WindowStyle="None"和AllowsTransparency="True",因此它没有标题栏和支持透明度。我希望用户能够通过左键单击窗口内的任意位置并拖动来将窗口移动到屏幕上的任何位置。只要按下鼠标左键,窗口就会随着鼠标一起拖动。我能够使此功能正常工作,但有一个异常(exception):当鼠标移出窗口时(例如当在窗口边缘附近按下鼠标左键并且鼠标快速移动时),窗口不再捕获鼠标位置并且不随鼠标一起拖动。这是我用来完成工作的代码隐藏代码:publicPointMouseDownPosition{get;set;}publicPointMouseP

c# - filterContext.Cancel 发生了什么(ASP.NET MVC)

在RC1之前我们做了这样的事情:publicvoidOnAuthorization(AuthorizationContextfilterContext){if(whatever){filterContext.Cancel();}}现在已经没有了,我们如何使用RC1获得相同的结果?谢谢,凯尔 最佳答案 您只需将ActionResult设置为不同的结果,而不是Cancel属性。因此,对于Cancel属性,您只需将Cancel=true替换为filterContext.Result=newHttpUnauthorizedResult();

c# - 在 while 循环的条件之后放置一个分号会发生什么?

我遇到过几次这样的情况:while(true){while(age==5);//Whatdoesthissemi-colonindicate?//Code//Code//Code}while(true)表明这是一个无限循环,但我很难理解while条件后的分号完成了什么,不是吗?相当于这个?:while(age==5){}//Code//Code换句话说,这是否意味着while循环没有用,因为它永远不会进入block? 最佳答案 while(age==5);//emptystatement相当于while(age==5){}//emp

c# - 没有行开始和结束终止符的 Regex.Replace 有一些非常奇怪的效果......这里发生了什么?

在回答这个问题时C#RegexReplaceand*有人提出问题存在的原因。播放时我产生了以下代码:strings=Regex.Replace(".A.","\w*","B");Console.Write(s);这有输出:B.BB.B我知道0长度字符串在.字符前后匹配,但为什么A被2Bs替换。我可以将B.BBB.B理解为替换A或B.B.B任一侧的零长度字符串但实际结果让我感到困惑-任何帮助表示赞赏。或者正如AakashM所说:为什么Regex.Matches("A","\w*").Count等于2,而不是1或3? 最佳答案 \w后面

c# - 即使发生未处理的异常,也要保持应用程序运行

什么?我正在开发一个需要保持24/7全天候运行的控制台应用程序无论如何有什么方法可以阻止多线程应用程序被“中发生的一些未处理的异常炸毁”某处的一些线索”?为什么?请不要给出诸如“你应该管理所有异常”、“这永远不应该发生”等类(class)。我有我的理由:我们正在测试部署,我们需要保持它的运行,记录异常,并再次重启所有线程。如果任何计划外发生并导致抛出未处理的异常,则需要检测它并调用一些方法来重新启动所有线程(由于层设计,原子性是不可能的)话虽如此,我知道如果应用程序因UnhandledException(我已经实现)而崩溃,则可能无法从“内部”重新启动应用程序。到目前为止,我已经使用Q

c# - 发生异常后向后单步执行程序 - Visual Studio

有没有办法从发生错误/异常的地方退回程序?还是看错误发生前调用方法的顺序? 最佳答案 在VisualStudio2010的终极版本中,您可以使用Inellitrace返回执行,正如DanPuzey提到的那样。但是,在任何版本的VisualStudio中,您仍然可以仅从调用堆栈中获取大量信息。它不仅显示导致当前位置的调用,通过双击“调用堆栈”窗口中的点,您还可以跳转到调用每个方法的代码中的点。堆栈的状态得以保留,因此您甚至可以在调用方法中看到局部变量的值。 关于c#-发生异常后向后单步执行