c# - How do I resend pings every five minutes to my list of IP Addresses -


first forgive me, new c#, trying teach myself language @ same time creating program.

i have list of ip addresses, buttons each of ip addresses being created on tablelayoutpanel inside flowlayoutpanel. tag each of buttons ip address button.

right code below pings once ip address , turns buttons control grey either red or green based off how ping returned.

private void tlp_controladded(object sender, controleventargs e) {     ipaddress ip;     if(ipaddress.tryparse((string)e.control.tag,out ip))     {         ping pingit = new ping();         pingit.pingcompleted += pingit_pingcompleted;         pingit.sendasync(ip, 2000, e.control);     } }  void pingit_pingcompleted(object sender, pingcompletedeventargs e) {     control ctrl = (control)e.userstate;     if (e.reply.status == ipstatus.success)     {         ctrl.backcolor = color.lime;     }     else     {         ctrl.backcolor = color.red;         ctrl.forecolor = color.white;     } } 

what program re-ping ip addresses every 5 minutes until form closed , color buttons respectably if change in ping response occurs.

edit:::: suggesting this? getting 4 erros code.

1.the best overloaded method match 'sca_up_tool.form2.timertick(object, system.timers.elapsedeventargs)' has invalid arguments 2.argument 2: cannot convert 'system.windows.forms.controleventargs' 'system.timers.elapsedeventargs' 3.system.timers.elapsedeventargs' not contain definition 'control' , no extension method 'control' accepting first argument of type 'system.timers.elapsedeventargs' found (are missing using directive or assembly reference?) 4.'system.timers.elapsedeventargs' not contain definition 'control' , no extension method 'control' accepting first argument of type 'system.timers.elapsedeventargs' found (are missing using directive or assembly reference?)

system.timers.timer pingtimer;  private void tlp_controladded(object sender, controleventargs e) {     pingtimerstart(sender, e); }  void pingtimerstart(object sender, controleventargs e) {     pingtimer = new system.timers.timer(300000); // 300 seconds - 5 minutes     pingtimer.elapsed += new elapsedeventhandler(timertick(sender, e));     pingtimer.start(); }  void timertick(object source, elapsedeventargs e) {     ipaddress ip;     if (ipaddress.tryparse((string)e.control.tag, out ip))     {         ping pingit = new ping();         pingit.pingcompleted += pingit_pingcompleted;         pingit.sendasync(ip, 2000, e.control);     } }  void pingit_pingcompleted(object sender, pingcompletedeventargs e) {     control ctrl = (control)e.userstate;     if (e.reply.status == ipstatus.success)     {         ctrl.backcolor = color.lime;     }     else     {         ctrl.backcolor = color.red;         ctrl.forecolor = color.white;     } } 

there several methods, simplest solution use timer.

try like

timer pingtimer; void pingtimerstart() {   pingtimer = new timer(300000); // 300 seconds - 5 minutes   pingtimer.elapsed += new elapsedeventhandler(ontimedevent);   pingtimer.start(); }  void timertick(object source, elapsedeventargs e) {   // send ping code here } 

Comments

Popular posts from this blog

java - How to specify maven bin in eclipse maven plugin? -

single sign on - Logging into Plone site with credentials passed through HTTP -

php - Why does AJAX not process login form? -