【访问冲突异常仅在未附加调试器的情况下运行C#app时出现】教程文章相关的互联网学习教程文章

c# – 如何在基于异步/等待的单线程协同程序实现中捕获异常【代码】

是否可以使用异步并等待高雅安全地实现只在一个线程上运行的高性能协程,不浪费周期(这是游戏代码)并且可以将异常抛回协程的调用者(可能是协程本身)? 背景 我正在尝试用C#coroutine AI代码替换(宠物游戏项目)Lua coroutine AI代码(通过LuaInterface托管在C#中). ?我想将每个AI(怪物,比如说)作为自己的协程(或嵌套的协程集)运行,这样主游戏线程可以每帧(每秒60次)可以选择“单步”部分或全部AIs取决于其他工作量. ?但是为了易读性和...

c# – ThrowIfCancellationRequested似乎没有抛出任何异常【代码】

我有以下代码:CancellationTokenSource cts = new CancellationTokenSource(); ParallelOptions po = new ParallelOptions(); po.CancellationToken = cts.Token;Task.Factory.StartNew(() => {if (Console.ReadKey().KeyChar == 'c')cts.Cancel();Console.WriteLine("press any key to exit"); });Parallel.ForEach(list, po, (algo) =>{algo.Compute(); // this compute lasts 1 minute Console.WriteLine("this job is finish...

c# – EntityFramework.dll中出现’System.Data.Entity.Validation.DbEntityValidationException’类型的第一次机会异常【代码】

执行此代码时收到此错误:[HttpPost]public ActionResult Registration(UserModel user){Console.WriteLine("ja");try{if (ModelState.IsValid){var crypto = new SimpleCrypto.PBKDF2();var encrpPass = crypto.Compute(user.Password);UserModel newUser = new UserModel(user.Email, encrpPass);newUser.PasswordSalt = crypto.Salt;userRepository.Add(newUser);userRepository.SaveChanges();return RedirectToAction("Index"...

c# – 使用.NET的ICorProfilerInfo :: SetILFunctionBody,是否可以将try-finally EH子句添加到没有任何异常处理的方法中?【代码】

我正在研究IL重写分析器,我的目标是能够为方法添加try-finally块.实质上:// IL to set some state try {// original IL } finally { // IL to revert state }基于有限的文档和分析API(https://msdn.microsoft.com/en-us/library/ms232096.aspx)的信息,似乎应该能够使用SetILFunctionBody添加新的异常处理子句. 我从http://clrprofiler.codeplex.com/SourceControl/list/changesets?branch=master开始关注Microsoft的示例ILRewri...

编译器如何在c#中优化异常过滤器?【代码】

在C#6中出现异常过滤器.所以我们可以写一些重试逻辑public static void Retry(){int i = 3;do{try{throw new Exception();}catch (Exception) when (--i < 0){throw;}catch (Exception){Thread.Sleep(10);}} while (true);}在控制台应用程序中它很棒.但是如果我们用“优化代码”创建网站应用程序,那么将会有无限循环,因为’i’的值永远不会改变.没有“优化代码”,这按预期工作.如何测试:在空的asp.net网站应用程序中创建(我尝试.n...

c# – 如何捕获一组任务的异常【代码】

我想了解在尝试等待一个任务数组时我应该在我的“try”块中使用的内容. 我希望等待所有任务,无论其中一个是否抛出异常,以便它们都可以完成. 我应该使用:var tasks = new Task<CasApiRouterModelExtendedInfo>[mbis.Length];for (int i = 0; i < mbis.Length; i++) {tasks[i] = CAS.Service.GetAllRouterInterfacesAsync(mbis[i], false, 2); }try {Task.WaitAll(tasks); } catch (AggregateException ex) {Trace.TraceError("Some...

c# – MVVM中的全局异常处理【代码】

有没有办法用MVVM模式实现全局异常处理.在我现有的情况下,每当ViewModel内部发生错误时,应用程序不会崩溃,只是“隐藏”导致错误的代码之后发生的其余绑定(当然这对最终用户来说非常误导,而不是真的,绝不应该这样发生).我不想为viewModel中的每个操作实现try catch,我不喜欢错误异常的无声方式,我真的很想为WPF应用程序实现一种处理全局错误的方法.有没有办法用MVVM做到这一点?解决方法:经过长时间的战斗,我终于找到了一种在ViewMo...

c# – 为什么在MVC OnException中处理的异常没有命中错误控制器操作?【代码】

作为一种处理错误的全能方法,我将其添加到我的MVC Web应用程序中的BaseController中.public class BaseController : Controller {protected override void OnException(ExceptionContext filterContext){_logger.Error(filterContext.Exception, "Website error page displayed.");TempData["ErrorMessage"] = "Unspecified error - please contact support";filterContext.RouteData.Values["controller"] = "Error";filterContex...

C#在C#dll中抛出异常【代码】

我有一个类,其中一个字段被分配给类型为T的数组或一个类型为T的dll对象,这个[int i]有一个模拟数组的重载(它使用非托管内存并使用重载访问)public T this[int i]{get{return ((T[])array)[i]; // can't use return array[i] directly}set { }}当我使用dll对象时,它会抛出强制转换异常.我认为(T [])将触发对象的重载[]而不是转换为float [],但它总是强制转换为float [],而对象类型是FloatArr,它具有公共浮点数[int i]. 有没有办法将...

c# – 全局异常处理Web Api 2【代码】

我试图弄清楚如何在.NET Web Api 2中实现全局异常处理程序. 我尝试按照Microsoft提出的示例进行操作:https://docs.microsoft.com/en-us/aspnet/web-api/overview/error-handling/web-api-global-error-handling 但是当发生异常时,它什么也没做. 这是我的代码:public class GlobalExceptionHandler : ExceptionHandler{public override void Handle(ExceptionHandlerContext context){Trace.WriteLine(context.Exception.Message)...

c# – 如何捕获异常并使用.NET Core中的状态代码进行响应【代码】

我正在运行.Net Core Web API项目.我有一个启动文件(如下).在Startup.ConfigureServices(…)方法中,我添加了一个创建IFoo实例的工厂方法.我想捕获IFooFactory抛出的任何异常,并返回带有状态代码的更好的错误消息.目前,我收到异常消息的500错误.有人可以帮忙吗?public interface IFooFactory {IFoo Create(); }public class FooFactory : IFooFactory {IFoo Create(){throw new Exception("Catch Me!");} }public class Startup ...

c# – “拒绝访问”WMI异常【代码】

我正在研究WMI.我想访问远程系统信息.以下代码适用于环回或本地主机,但是当我尝试访问远程计算机时,它显示以下异常错误:Access is denied. (Exception from HRESULT:0X8005(E_ACCESSDENIED))在两个系统之间使用开关时. 和The RPC server Is unavailable. (Exception from HRESULT: 0x800706BA)当两个系统直接连接时. 两个系统上的操作系统:Windows Service Pack 2.防火墙=被阻止.远程过程服务=正在运行. 工具:.NET Visual Studi...

c# – 如何使用callvirt调用base.ToString()会导致StackOverflow异常?【代码】

IL为调用函数提供了两个语句,即call和callvirt.调用用于调用非虚函数或静态函数或编译器不希望对引用进行空检查的任何函数. callvirt用于调用虚函数,也调用非虚函数,因为编译器在运行时对引用进行空检查. 现在,当通过C#进行CLR时,我发现了以下示例.internal class SomeClass {public override String ToString(){return base.ToString();} }现在ToString()是虚函数,但是编译器为它生成了调用指令.但杰弗里提到为什么没有生成callvi...

c# – 从类的基础捕获异常【代码】

我有一个基类,我想在基类中捕获派生类的所有异常,这可能吗? 您不会知道派生类的方法是什么.解决方法:您需要提供有关特定方案的更多详细信息.但是,例如,如果您有一个提供契约的基本抽象类,并且您希望捕获派生类在调用基类契约时抛出的所有可能异常,则可以执行以下操作:public abstract class Base {protected abstract void InternalFoo();protected abstract void InternalBar();public void Foo(){try { this.InternalFoo(); }c...

访问冲突异常仅在未附加调试器的情况下运行C#app时出现【代码】

我有一个在Visual Studios 2008中运行良好的应用程序,我试图将其纳入VS 2010以便使用.NET 4,我有一个非常奇怪的问题.当我从发布模式或调试模式运行代码并附带调试器(F5)时,我没有运行程序的问题.但是,当我在没有附加调试器的情况下从Release或Debug运行程序时(Shift F5),当我尝试在GDCM中的dll中运行一些代码时,我得到了一个访问冲突异常.我已经使用CMake创建了dll并且Swig并按照说明here调整构建VS 2010和.NET 4所需的说明. 有没有...