PDA

View Full Version : چک کردن ارتباط با سرور در یک نخ



piroozman
دوشنبه 31 تیر 1398, 21:30 عصر
در یک برنامه قصد دارم به ترتیب مراحل زیر اجرا بشه:
1-فرم لاگین بدون هر گونه ابزاری به جز یک برچسب و عکس پس زمینه (شبیه یک فرم Splash) باز شه.
2- پشت صحنه (ترجیحاً داخل یک نخ) ارتباط با سرور مورد بررسی قرار بگیره و در این بین برچسب روی فرم عبارت (در حال بررسی ارتباط با سرور ...) را به کاربر نمایش بده.
3- اگر ارتباط با سرور برقرار شد(flag==true) یک سری ابزار مختص لاگین به کاربر نمایش داده بشه.
4- اگر ارتباط با سرور برقرار نشد(flag==false) یک سری ابزار دیگر برای آدرس دهی سرور به کاربر نمایش داده بشه.

امیدوارم منظورم رو واضح تونسته باشم بیان کنم. کدهای نمونه ای که ایجاد کردم به صورت زیر هستش. مشکلی که در این کدها وجود داره این هستش که قبل از این که فرم نمایش داده بشه، نخ اجرا میشه و برنامه در اول کار با تاخیر شروع میشه و بلافاصله همه ابزار مورد نظر نمایش داده میشه. لطف کنند دوستان راهنمایی کنند. با تشکر:

using System;
using System.Windows.Forms;
using Microsoft.Data.ConnectionUI;
using System.Reflection;



public partial class LoginForm : Form
{

public LoginForm()
{
this.DoubleBuffered = true;
InitializeComponent();
System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(CheckConnection));
t.Start();
System.Threading.Thread.Sleep(5000);
t.Abort();
}

bool flag;
private void CheckConnection()
{
//this.Cursor = Cursors.AppStarting;
using (System.Data.SqlClient.SqlConnection connection =
new System.Data.SqlClient.SqlConnection
(connectionString))
{
try
{
connection.Open();
connection.Close();
flag = true;
}
catch
{
flag = false;
}
}
}

private void SplashScreenForm_Load(object sender, EventArgs e)
{
if (flag)
{
//Do somethings to login user
}
else
{
//Do something to create connection to database
}


}

رامین مرادی
سه شنبه 01 مرداد 1398, 09:01 صبح
از بکگراندورکر استفاده نمایید.

piroozman
چهارشنبه 02 مرداد 1398, 01:07 صبح
از بکگراندورکر استفاده نمایید.
سلام. دمت گرم عالی بود. درستش کردم