Did*_*evy 2 c# vb.net timer event-handling
NET大师......你怎么把这个大块转换成VB?
this.timer = new System.Timers.Timer(100);
this.timer.Elapsed+=new System.Timers.ElapsedEventHandler(ManageThreads);
this.timer.Start();
Run Code Online (Sandbox Code Playgroud)
当我使用在线转换器(Telerik)时,中间线转换如下:
Me.timer.Elapsed += New System.Timers.ElapsedEventHandler(ManageThreads)
Run Code Online (Sandbox Code Playgroud)
有2个错误:1-"Public eventElapsed是一个事件,无法直接调用.使用raiseEvent 2- Delegate需要一个Adess Of表达式.我只需添加"Address Of"吗?
任何线索都热烈欢迎.
添加事件处理程序的语法在C#和VB.NET之间是非常不同的,因为您发现Telerik不能很好地处理这种差异.
C#添加处理程序语法:
<object>.<event> += <event_handler_function>
Run Code Online (Sandbox Code Playgroud)
VB添加处理程序语法:
add handler <object>.<event>, addressof <event_handler_function>
Run Code Online (Sandbox Code Playgroud)
VB事件处理可能会遇到另一个问题:您要添加事件处理程序的对象必须在类范围内声明.例如,您无法将处理程序添加到本地创建的对象(在方法中)并将其返回或添加到集合中.所以当你需要动态地做事时,你基本上有一个类级临时变量.
祝好运.