.net 是否可以在IMessageFilter.PreFilterMessage中引发异常?
我正在使用消息过滤器控制winform应用程序中的授权。我的(简化)代码如下:.net 是否可以在IMessageFilter.PreFilterMessage中引发异常?,.net,winforms,imessagefilter,.net,Winforms,Imessagefilter,我正在使用消息过滤器控制winform应用程序中的授权。我的(简化)代码如下: public bool PreFilterMessage(ref Message m) { if(IsAllowed()) return true; throw new UnauthorizedAccessException(); } 但在抛出异常后,相同的消息不断返回,导致无限循环 是否可以在PreFilterMessage中引发异常?PreFilterMessage捕获所有发生的
public bool PreFilterMessage(ref Message m)
{
if(IsAllowed())
return true;
throw new UnauthorizedAccessException();
}
但在抛出异常后,相同的消息不断返回,导致无限循环
是否可以在PreFilterMessage中引发异常?PreFilterMessage捕获所有发生的事件,这可能包括关闭向您引发的异常时触发的事件
因此,PreFilterMessage要么返回true(因此事件被忽略),要么抛出异常。这看起来不像是故意的行为。只要没人抓住它。您需要禁用ThreadException事件,因为它太难保持应用程序运行。调用Application.SetUnhandledExceptionMode()。在dispatcher循环中强制执行此操作是相当不明智的。只需使用Control.Enabled属性就可以有选择地取消/启用UI。哦,嘿,两个人没有说为什么就投了反对票。嗯,随便了。