PDA

View Full Version : thread / ترد برای چک کردن قفل سخت افزاری



netfa.ir
سه شنبه 07 دی 1389, 03:10 صبح
سلام دوستان.
من یه مشکلی دارم.
من یه قفل سخت افزاری تهیه کردم (شگرد).
حالا می خوام در برنامم مدام اون رو چک کنم.
با یه ترد اینکار رو انجام می دم ولی باز صفحه واسه چند ثانیه dead میشه و بعد نتیجه درستی یا نادرستی قفل معلوم می شه!!! اگه ترد همینه که اصلا فرقی با حالت عادی نداره!
:متعجب:
این قفل کلا سرعتش پایینه یا همه اینجورین؟!!
دوستان راه حلی سراغ ندارین؟
کلا اولین بارمه که با ترد کار می کنم.
ممنون میشم راهنماییم کنید.
یه ترد برای چک کردن پراپرتی ها و مشخصه های کامپوننت قفل سخت افزاری در پس رمینه لازم دارم. جوری که به روند برنامم خللی وارد نکنه/
ممنون

این هم کدم:



private void button1_Click(object sender, EventArgs e)
{



Thread MyThread = new Thread(new ThreadStart(MyCallbackFunction));
MyThread.Start();
Form2 f = new Form2();
f.Show();

}

public void MyCallbackFunction()
{

axTiny1.FirstTinyHID("864xxxxxxxxxxx6EE04D");


if (axTiny1.TinyErrCode != 0)
{

MessageBox.Show(axTiny1.TinyErrCode.ToString());
}
else
{
MessageBox.Show("OKKK");
}
}

netfa.ir
سه شنبه 07 دی 1389, 15:56 عصر
کسی نیست حداقل بگه کلا مفهومه تر این هست یا نه!!!!!

ایمان مدائنی
سه شنبه 07 دی 1389, 16:15 عصر
بين دوست عزيز معمولا قفلهاي سخت افزاري خودشو رويدادي دارن كه به محض خارج شدن قفل اجرا ميشه
من از قفلهاي tiny استفاده ميكنم ولي مدونم كه همه دارن اين ايونت رو

Felony
سه شنبه 07 دی 1389, 16:23 عصر
axTiny1 که تو کدتون هست کامپوننت قفل سخت افزاریتون هست درسته ؟ کامپوننت رو روی فرم قرار دادید و بعد ازش تو Thread استفاده کردید ؟!

وقتی کامپوننت رو روی فرم قرار میدید Thread سازنده اون کامپوننت میشه Main Thread برنامه ، پس نباید انتظار معجزه داشته باشید ، اون شئ axTiny رو خودتون تو Thread ی که ساختید بسازید و ازش استفاده کنید ، یعنی قبل از استفاده تو Thread اون رو به صورت Runtime بسازید ( new ) .

@ بهتره در مورد Thread ها و استفاده از اونها مطالعه کنید ، Thread ها و Fiber ها مباحثی نیستند که مثل یک تابع 2 تا پارامتر بهش بدی و باقی کار رو بسپری دست خود ویندوز ... !

netfa.ir
سه شنبه 07 دی 1389, 17:22 عصر
axTiny1 که تو کدتون هست کامپوننت قفل سخت افزاریتون هست درسته ؟ کامپوننت رو روی فرم قرار دادید و بعد ازش تو Thread استفاده کردید ؟!

وقتی کامپوننت رو روی فرم قرار میدید Thread سازنده اون کامپوننت میشه Main Thread برنامه ، پس نباید انتظار معجزه داشته باشید ، اون شئ axTiny رو خودتون تو Thread ی که ساختید بسازید و ازش استفاده کنید ، یعنی قبل از استفاده تو Thread اون رو به صورت Runtime بسازید ( new ) .

@ بهتره در مورد Thread ها و استفاده از اونها مطالعه کنید ، Thread ها و Fiber ها مباحثی نیستند که مثل یک تابع 2 تا پارامتر بهش بدی و باقی کار رو بسپری دست خود ویندوز ... !

ممنون دوست من.
فکر کنم حق با شماست و Main Thread میشه.
ولی واقعا وقتم کم هست و دیگه از بس تو سایتهای خارجی و اینجا گشتم که مثلا کارم رو با مثلا یه کلاس thread راه بندازم دیوونه شدم.

از این AxTiny1 به این شکل در ابتدای برنامه نمونه می گیرم (داخل ترد نشد! و این خطا رو داد:
ActiveX control '0ca5a93d-f6bd-4398-809a-9f767276ef77' cannot be instantiated because the current thread is not in a single-threaded apartment. )



AxTINYLib.AxTiny AT1 = new AxTINYLib.AxTiny();
من حقیقتش فقط باید یه برنامه ای رو که دادن بم با این قفل تجهیز کنم و بس. تا به حال با thread ها کار نکرده بود. بدجوری گیرم.
ممنون میشم کمکم کنید :(

netfa.ir
سه شنبه 07 دی 1389, 17:25 عصر
بين دوست عزيز معمولا قفلهاي سخت افزاري خودشو رويدادي دارن كه به محض خارج شدن قفل اجرا ميشه
من از قفلهاي tiny استفاده ميكنم ولي مدونم كه همه دارن اين ايونت رو

درسته ولی به این قفل ها باید کانکت شد یا نه. همین کانکت شدن یه چیزی حدوده 3 ثانیه زمان می بره.
حالا فک کن در هر جای برنامه بخوام ازش استفاده کنیم چی میشه!!!! :(

HAMRAHSOFT.IR
سه شنبه 14 دی 1389, 08:35 صبح
دوستان این روش که دوستمون گفتن خوبه ؟دوست خوب netfa.ir (http://barnamenevis.org/member.php?119972-netfa.ir) شما از این روش جواب گرفتی؟