前一篇文章只是简单的说了下事件,但是大家应该方法,在ASP.NET自定义控件中只是简单那么定义事 件是行不通。如果大家开发的是WinForm中的事件,之前的定义可能没有什么大的问题,只是在效率方法 欠考虑而且,还是可以运行的。
下面我们就回到ASP.NET中的事件。
大家也许看了我们之前定义的事件,确实,事件一般是那么定义的,但是那样定义事件后的,运行起 来的效率不搞,因为那样定义事件后,编译器在编译事件代码的时候,会自动的为我们加入很多多线程安 全的代码,就是说,虽然我们只是定义几行代码,大但是编译器为我们做了很多额外的事情,当然,这样 代码的运行的效率可想而知。
在很多的时候,我们自定义控件的事件不是需要考虑多线程安全等问题的,所我们就要改变代码,使 其运行的更加好,我们就采用下面的方法:显示的申明事件:
1 2 //其实其实一个辅助的变量,用来做Hashtable中的”键“ 3 private static object ValidateCreditCardFormKey = new object(); 4 public event ValidateCreditCardFormEventHandler ValidateCreditCardForm 5 { 6 add 7 { 8 Events.AddHandler(ValidateCreditCardFormKey, value); 9 } 10 remove 11 { 12 Events.RemoveHandler(ValidateCreditCardFormKey, value); 13 } 14 } 15 16 17 protected void OnValidateCreditCardForm(ValidateCreditCardFormEventArgs args) 18 { 19 ValidateCreditCardFormEventHandler handler = Events [ValidateCreditCardFormKey] 20 as ValidateCreditCardFormEventHandler; 21 if (handler != null) 22 handler(this, args); 23 }
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索编译器
, 多线程
, 控件
, 运行
, 代码
, 事件
自定义组件事件
,以便于您获取更多的相关知识。
时间: 2024-10-30 20:37:44