senaps
یک شنبه 30 مهر 1391, 00:40 صبح
با سلام.... بنده با استفاده از WCF/WPF/Linq به برنامهی کوچیک نوشتم! که وسط کار تو یه قسمت که از ترد ها استفاده کردم گیر افتادم....
مسئله اینه که من میخوام به محض اینکه کاربر از تکست باکس خارج شد، یه تردی اجرا بشه و یه سری عملیات صورت بگیره در حینی که کاربر داره یه کار دیگه میکنه!
حالا داستان چیه:
من یه تکست باکس برای گرفتن نام کاربری دارم... میخوام به محض خروجش از تکست باکس، متدی برای چک کردن یوزر نیم اجرا بشه:
Thread confirmuserthread = new Thread(new ThreadStart( ConfirmUsername));
confirmuserthread.Start();
خوب... حالا این متد کانفریم که من تو ترد اجراش میکنم این کارا رو میکنه::
username = txt_Username.Text; //this will set the username to the txt_username method!
ServiceReference1.Service1Client obj = new ServiceReference1.Service1Client();
// it check's if username is free to use!
if (obj.ConfirmUsername(username))
{
isValidUsername = true;
}
else
{
tblock_UserName.Text = " نام کاربری شما قابل استفاده نمی باشد، لطفا نام کاربری دیگری انتخاب نمایید";
tblock_UserName.Visibility = System.Windows.Visibility.Visible;
tblock_UserName.Text = "";
}
داستان اینه که میاد یوزر نیم رو با دیتابیسم(سرویس) چک میکنه... اگر قبلا وجود داشت، پیغام خطایی رو نشون میده در یک تکست بلاک! اگر هم نه که هیچی یه مقداری رو True میکنه تا من بتونم با بررسیش، در هنگام کلیک باتن ذخیره اقدام به ذخیرهی نام کاربری و پسورد بکنم....
(مسئله اینه که من برای نامهای کاربری یه جدول و برای رمز های عبور یه جدول دارم که بتونم خاصیت هایی مثل تغییر نام کاربری و همچنین رد گیری تغییر پسورد ها و ... رو داشته باشم!!!)
حالا وقتی میخوام از برنامه استفاده بکنم، برنامه الکی ایراد میگیره که متغییر مربوطه در اختیار یه ترد دیگههستش.... در صورتی که اینجوری نیست....
ایرادش هم از اینجاست:
username = txt_Username.Text;
به نظرتون باید چیکار کنم؟! اگر لازم داشتید بگید تا براتون کد ها رو بذارم ولی خوب حجمش بالاست و ممکنه اذیت بشید سر تستش.... هر قسمتی از کد ها هم لازم بود بفرمایید تا ارائه بکنم خدمتتون....
مسئله اینه که من میخوام به محض اینکه کاربر از تکست باکس خارج شد، یه تردی اجرا بشه و یه سری عملیات صورت بگیره در حینی که کاربر داره یه کار دیگه میکنه!
حالا داستان چیه:
من یه تکست باکس برای گرفتن نام کاربری دارم... میخوام به محض خروجش از تکست باکس، متدی برای چک کردن یوزر نیم اجرا بشه:
Thread confirmuserthread = new Thread(new ThreadStart( ConfirmUsername));
confirmuserthread.Start();
خوب... حالا این متد کانفریم که من تو ترد اجراش میکنم این کارا رو میکنه::
username = txt_Username.Text; //this will set the username to the txt_username method!
ServiceReference1.Service1Client obj = new ServiceReference1.Service1Client();
// it check's if username is free to use!
if (obj.ConfirmUsername(username))
{
isValidUsername = true;
}
else
{
tblock_UserName.Text = " نام کاربری شما قابل استفاده نمی باشد، لطفا نام کاربری دیگری انتخاب نمایید";
tblock_UserName.Visibility = System.Windows.Visibility.Visible;
tblock_UserName.Text = "";
}
داستان اینه که میاد یوزر نیم رو با دیتابیسم(سرویس) چک میکنه... اگر قبلا وجود داشت، پیغام خطایی رو نشون میده در یک تکست بلاک! اگر هم نه که هیچی یه مقداری رو True میکنه تا من بتونم با بررسیش، در هنگام کلیک باتن ذخیره اقدام به ذخیرهی نام کاربری و پسورد بکنم....
(مسئله اینه که من برای نامهای کاربری یه جدول و برای رمز های عبور یه جدول دارم که بتونم خاصیت هایی مثل تغییر نام کاربری و همچنین رد گیری تغییر پسورد ها و ... رو داشته باشم!!!)
حالا وقتی میخوام از برنامه استفاده بکنم، برنامه الکی ایراد میگیره که متغییر مربوطه در اختیار یه ترد دیگههستش.... در صورتی که اینجوری نیست....
ایرادش هم از اینجاست:
username = txt_Username.Text;
به نظرتون باید چیکار کنم؟! اگر لازم داشتید بگید تا براتون کد ها رو بذارم ولی خوب حجمش بالاست و ممکنه اذیت بشید سر تستش.... هر قسمتی از کد ها هم لازم بود بفرمایید تا ارائه بکنم خدمتتون....