草庐IT

System虚拟化

全部标签

c# - 为什么此代码抛出 System.ExecutionEngineException

背景:我正在使用DirectX9.0托管库将3d点数组转换为2d屏幕坐标。为了提高速度,我使用UnsafeNativeMethods进行所有转换。问题:如果使用我的自定义线裁剪功能,我的应用程序会在没有抛出任何异常的情况下死机,我花了一段时间才弄清楚它抛出了一个uncatchableSystem.ExecutionEngineException。由于我的裁剪函数的最后两行,我已经将它缩小到发生。ListverticesAfterClipping=newList;publicunsafevoidClipLine(LinelineToClip){this.verticesAfterClip

c# - 如何检查 System.IO.File.Delete 是否成功删除文件

使用system.io.file类删除文件后:System.IO.File.Delete(openedPdfs.path);如果文件被成功删除,我需要运行一些代码。只要该方法不返回任何值,我就会在delete方法之后检查文件是否存在。如果它仍然存在,我认为操作失败。问题是,删除方法工作正常,但要删除文件需要几秒钟。Exist函数返回true,因为当时它正在检查文件是否存在。我如何确定System.IO.File.Delete(openedPdfs.path);是否成功完成?代码:FileInfofile=newFileInfo(openedPdfs.path);System.IO.Fi

c# - 绘制图像时 : System. Runtime.InteropServices.ExternalException: GDI 中发生一般性错误

我有一个从Panel创建的全局图形对象。每隔一定时间从磁盘中拾取图像并使用Graphics.DrawImage()绘制到面板中。它在几次迭代中工作正常,然后我得到以下有用的异常:System.Runtime.InteropServices.ExternalException:AgenericerroroccurredinGDI+.atSystem.Drawing.Graphics.CheckErrorStatus(Int32status)atSystem.Drawing.Graphics.DrawImage(Imageimage,Int32x,Int32y)atSystem.Drawi

c# - 如何确定 System.Type 是自定义类型还是框架类型?

我想清楚地确定我拥有的类型是自定义类类型(MyClass)还是框架提供的类型(System.String)。有什么方法可以将我的类类型与system.string或其他框架提供的类型区分开来吗? 最佳答案 安全检查类型是否属于程序集的唯一方法是检查程序集的完全限定名称,其中包含其名称、版本、区域性和公钥(如果已签名)。所有.Net基类库(BCL)均由Microsoft使用其私钥签名。这使得其他任何人几乎不可能创建与基类库具有相同完全限定名称的程序集。//addmore.NetBCLnamesasnecessaryvarsystemN

c# - 捕捉 System.Exception 总是不好的做法吗?

请考虑以下代码,它抛出三种不同的异常(即System.Configuration.ConfigurationErrorsException、System.FormatException和System.OverflowException):intSomeInt=Convert.ToInt32(ConfigurationManager.AppSettings["SomeIntValue"]);异常是不同的,所以在实践中我应该有三个不同的catchblock来处理每个特定的异常。但是,在这种特殊情况下,所有异常的处理方式都相同:将日志写入事件查看器,并显示一条通知配置错误的消息......在

c# - 使用 IIS7 通过 c#/asp.net 网页访问虚拟目录(映射驱动器)

所以我有服务器A和服务器B。服务器A:WindowsServer2008R2服务器B:WindowsServer2003网页使用的是framework4.0,用VS2013ProRC制作在服务器A上,我的asp.net/c#网页在IIS7上运行在服务器B上我有一个共享文件夹。现在我已经将此共享文件夹从服务器B映射到服务器A,并且可以通过桌面\Windows资源管理器完全访问它,但是从网页访问该文件夹是另一回事。要访问该文件夹,我在IIS7中所做的是,在同一网页下创建一个虚拟文件夹,并将其指向映射的驱动器。如果文件夹在同一台服务器A上,这当然会起作用,但由于它在不同的服务器B上,我收到以

c# - 在 .Net Core 2.1 中使用 FirstOrDefault 时引发的 System.Linq.Expressions 异常

我收到了~300多个异常,这些异常在我的服务器输出中被标记为垃圾邮件:Exceptionthrown:'System.ArgumentException'inSystem.Linq.Expressions.dll我使用的查询如下:Accountaccount=_accountContext.Account.Include(i=>i.Currency).Include(i=>i.Unlocks).Include(i=>i.Settings).Include(i=>i.Friends).FirstOrDefault(a=>a.FacebookUserID==facebookUserID);

c# - 使用 System.Uri 删除多余的斜线

我的程序中有一个条件,我必须组合一个服务器(例如http://server1.my.corp/),它可能有也可能没有结束斜杠和相对路径(例如/Apps/TestOne/)。根据docs,Uri应该...CanonicalizesthepathforhierarchicalURIsbycompactingsequencessuchas/./,/../,//,...因此,当我执行类似varurl=newUri(server+relativePath)的操作时,我希望它采用本来应该是http://server1.my.corp的内容//Apps/TestOne/并删除双斜杠(即//->/),

c# - 在退出程序之前等待 System.Threading.Timer 回调完成

我有一个List.每个计时器以可配置的时间间隔触发(默认10分钟)。所有调用相同的回调方法(具有不同的参数)。回调方法可能需要几秒钟才能完成其工作。当程序终止时,回调方法的执行似乎立即停止(我没看错吗?)。如何在退出程序之前优雅地等待任何当前正在执行的回调方法完成? 最佳答案 您可以使用WaitHandler参数处理所有计时器。仅当回调方法完成时才会向此处理程序发出信号(如规范所述:“在所有当前排队的回调完成之前,计时器不会被释放。”)voidWaitUntilCompleted(ListmyTimers){ListwaitHnd=

c# - 在 C# 中模拟非虚拟方法

这个问题在这里已经有了答案:Howtomocknonvirtualmethods?(8个答案)关闭11个月前。我正在尝试测试我使用模拟创建的一些类,但我发现c#中的所有免费模拟框架都无法模拟非虚拟方法(如果它不在接口(interface)中)。但是,有TypeMock可以做到这一点,所以这是可能的。任何人都可以展示如何去做吗?如果我能做到这一点,我什至可能会尝试为开源框架做出贡献。提前致谢