جلوگیری از قفل شدن برنامه با thread
سلام چطوری این برنامه را ترد طراحی کنم که برنامه برای مدتی قفل نگردد؟
برنامه داخل یک تایمر برای هر یک دقیقه عمل پینگ را انجام می دهد تا اتصال اینترنت بررسی گردد
private void timer1_Tick(object sender, EventArgs e)
{
OnlinStatus();
}
private void OnlinStatus()
{
try
{
System.Net.NetworkInformation.Ping ping = new System.Net.NetworkInformation.Ping();
System.Net.NetworkInformation.PingReply pingStatus = ping.Send("google.com");
if (pingStatus.Status == System.Net.NetworkInformation.IPStatus.Success)
{
pic_Internet.Image = EmdadFaraz.Properties.Resources.router_wireless_12 8;
lbl_Connection.Text = "برقرار";
}
else
{
pic_Internet.Image = EmdadFaraz.Properties.Resources.basic1_102_wi_fi_w ireless_router_128;
lbl_Connection.Text = "خطا در ارتباط";
}
}
catch
{
lbl_Connection.Text = "خطا در ارتباط";
}
}
نقل قول: جلوگیری از قفل شدن برنامه با thread
سلام.
یه تایمر بذار با Interval=60000
یه BackgroundWorker بذار و این کدها رو بنویس :
private bool connect = false;
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
timer1.Enabled = false;
try
{
System.Net.NetworkInformation.Ping ping = new System.Net.NetworkInformation.Ping();
System.Net.NetworkInformation.PingReply pingStatus = ping.Send("google.com");
if (pingStatus.Status == System.Net.NetworkInformation.IPStatus.Success)
{
connect = true;
}
}
catch{ }
}
private void timer1_Tick(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (connect)
{
pic_Internet.Image = EmdadFaraz.Properties.Resources.router_wireless_12 8;
lbl_Connection.Text = "برقرار";
}
else
{
pic_Internet.Image = EmdadFaraz.Properties.Resources.basic1_102_wi_fi_w ireless_router_128;
lbl_Connection.Text = "خطا در ارتباط";
}
connect = false;
timer1.Enabled = true;
}