C#学习教程:如何给system.threading.timer()传递多个参数)期望?timer1[timer]=newSystem.Threading.Timer(databaseTrensfer,row,dueTime,interval);publicvoiddatabaseTrensfer(objectrow,objectunitID){//在这里工作}如何将第二个参数传递给我的databaseTrensfer函数?提前致谢。为什么不创建一个具有包含要传递的其他项的属性的类?然后只需传递实际的容器类。定时器回调被定义为采用单个参数:publicdelegatevoidTimerCallback(objectstate);如果您需要将几个参数传递给您的回调,这些参数在Timer构造函数上注册回调时已知,那么您可以使用lambda:TimerCreateTimer(objectunitID){objectrow=...TimeSpandueTime=...TimeSpaninterval=...returnnewTimer(x=>DatabaseTransfer(x,unitID),row,dueTime,interval);}staticvoidDatabaseTransfer(objectrow,objectunitID){....}writex=>DataTransfer(x,unitID)捕获unitID变量的状态,大致相当于:TimerCreateTimer(objectunitID){objectrow=...TimeSpandueTime=...TimeSpaninterval=...$Temptemp=new$Temp(unitID);returnnewTimer(temp.Callback,row,dueTime,interval);}class$Temp{public$Temp(objectarg){这个。参数=参数;}publicvoidCallback(objectx){DataTransfer(x,this.arg);}私有对象参数;}编译器负责在幕后构建类和管道。例如,参见关于闭包的注释。以上就是C#学习教程的全部内容:如何给system.threading.timer()传递多个参数。如果对你有用,需要了解更多C#学习教程,希望大家多加关注——本文来自网络合集,不代表立场,如涉及侵权,请右击联系管理员删除。如需转载请注明出处:
