C# raise事件后,未立即将控件提供给调用方

C# raise事件后,未立即将控件提供给调用方,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,我有一个asp.NETMVC4.7.2网站。我有一个引发事件的类,我在另一个类中处理该事件。所以我的代码看起来像: RedirectDeleting?.Invoke(this,new RedirectDeletingArgs(contentId,culture)); _redirectUrlService.Delete(id); RedirectDeleted?.Invoke(this,new RedirectDeletedArgs(conte

我有一个asp.NETMVC4.7.2网站。我有一个引发事件的类,我在另一个类中处理该事件。所以我的代码看起来像:

        RedirectDeleting?.Invoke(this,new RedirectDeletingArgs(contentId,culture));

        _redirectUrlService.Delete(id);

        RedirectDeleted?.Invoke(this,new RedirectDeletedArgs(contentId,culture));
在处理程序中,我的代码如下所示:

RedirectsService.RedirectDeleted += RedirectsService_RedirectDeleted;

        private void RedirectsService_RedirectDeleted(object sender, RedirectDeletedArgs e)
    {
        RemoveRedirectFromStorage(e);
    }
我希望首先引发事件RedirectDelete,然后控制转到处理程序,以便在我的另一个类中调用方法RedirectsService_RedirectDeleted

正在发生的是,事件被引发在类中执行引发事件继续,然后我的事件得到处理,此时为时已晚。在调用方法_redirectUrlService.Delete之前,需要执行我的处理程序


我没有做任何异步等操作。我是否遗漏了什么或做错了什么?

您在重定向的处理程序中做了什么?请发布itok,再深入一点,这个方法看起来像是通过一个调度器调用的,它是异步的,这导致了排序问题。