امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
شبيه سازي وقفه (sleep از نوع ديگش)
نویسنده پیام
veyskarami غایب
مدیر بازنشسته
*****

ارسال‌ها: 861
موضوع‌ها: 82
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 477
( 2479 تشکر در 611 ارسال )
ارسال: #1
شبيه سازي وقفه (sleep از نوع ديگش)
کد:
function vsleep(milisecond:cardinal):cardinal;
var
cnt,t:cardinal;
begin
result:=0;
t:=GetTickCount;
while true do
begin
cnt:=GetTickCount - t;
result:=cnt;
if cnt = milisecond then break;
end;
end;

مزيت اين Sleep نسبت به Sleep مايكروسافت اينه كه وسط برنامه ها روان تر عمل ميكنه و اگه از thread استفاده كني مي توني مدت زمان تلف شده و باقي مانده sleep رو محاسبه كني.
تازه sleep ش اپن سورسه ولي مال مايكروسافت اين طور نيست Biggrin
حالا بگو ببينم Sleep من بهتره يا مايكروسافت؟ Biggrin

۲۲-دى-۱۳۸۸, ۱۲:۰۹:۱۰
وب سایت ارسال‌ها
پاسخ
CRazYFULL غایب
مدیر بازنشسته
*****

ارسال‌ها: 792
موضوع‌ها: 27
تاریخ عضویت: تير ۱۳۸۵

تشکرها : 1546
( 2836 تشکر در 593 ارسال )
ارسال: #2
RE: شبيه سازي وقفه (sleep از نوع ديگش)
اينطوری يه مدت زمان ميديد تو حلقه الاف بشه... ولی اگه اشتبا نکنم CPU رو به 100% ميرسونه
۲۲-دى-۱۳۸۸, ۱۲:۳۵:۳۹
ارسال‌ها
پاسخ
veyskarami غایب
مدیر بازنشسته
*****

ارسال‌ها: 861
موضوع‌ها: 82
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 477
( 2479 تشکر در 611 ارسال )
ارسال: #3
RE: شبيه سازي وقفه (sleep از نوع ديگش)
100% كه نه ولي بهتره تو thread اجرا بشه

۲۲-دى-۱۳۸۸, ۱۲:۴۰:۴۳
وب سایت ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #4
RE: شبيه سازي وقفه (sleep از نوع ديگش)
مال میکرو سافت که اصلا خوب نیست Biggrin
اینم خوبه فقط باید یه کاریش کنی که cpu رو نبره رو ۱۰۰ درصد

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۲۲-دى-۱۳۸۸, ۱۲:۴۱:۴۷
وب سایت ارسال‌ها
پاسخ
CRazYFULL غایب
مدیر بازنشسته
*****

ارسال‌ها: 792
موضوع‌ها: 27
تاریخ عضویت: تير ۱۳۸۵

تشکرها : 1546
( 2836 تشکر در 593 ارسال )
ارسال: #5
RE: شبيه سازي وقفه (sleep از نوع ديگش)
اگه به 100% هم نرسه از تمام منابع CPU که در اختيار برنامه قرار گرفته استفاده ميشه و برنامه حالت freez ميگيره به نظرم حتماً بايد تو تريد قرار بگيره
البته منم هميشه از اين روش واسه sleep کمتر از 1 ثانيه استفاده ميکنم
۲۲-دى-۱۳۸۸, ۱۳:۱۵:۳۵
ارسال‌ها
پاسخ
veyskarami غایب
مدیر بازنشسته
*****

ارسال‌ها: 861
موضوع‌ها: 82
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 477
( 2479 تشکر در 611 ارسال )
ارسال: #6
RE: شبيه سازي وقفه (sleep از نوع ديگش)
معمولا تو كد هايي كه داخل ترد اجرا ميشن بايد از اين استفاده كرد.
سعي مي كنم كامل ترش كنم.

۲۲-دى-۱۳۸۸, ۱۸:۵۰:۳۶
وب سایت ارسال‌ها
پاسخ
veyskarami غایب
مدیر بازنشسته
*****

ارسال‌ها: 861
موضوع‌ها: 82
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 477
( 2479 تشکر در 611 ارسال )
ارسال: #7
RE: شبيه سازي وقفه (sleep از نوع ديگش)
اينم ورژن 2 Biggrin
ايراد هايي كه گفتين رو برطرف كردم
ديگه نياز به ترد هم نيست.
کد:
function vsleep(milisecond:cardinal):cardinal;
var
cnt,t,h:cardinal;
Msg:TMsg;
begin
result:=0;
cnt:=0;
t:=GetTickCount;
h:=CreateWindow( '', '',WS_DISABLED, 1,1,1,1, 1,1,0,nil);
while(GetMessage(Msg,h,0,0))and(cnt <> milisecond)do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
cnt:=GetTickCount - t;
result:=cnt;
if cnt = milisecond then break;
end;
end;

(آخرین ویرایش در این ارسال: ۲۲-دى-۱۳۸۸, ۱۹:۰۹:۱۸، توسط veyskarami.)
۲۲-دى-۱۳۸۸, ۱۹:۰۸:۱۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : lord_viper
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #8
RE: شبيه سازي وقفه (sleep از نوع ديگش)
می خواهی Message ها در حین کار پردازش بشن Translate نکن و این حرفا بزن
کد:
Application.ProcessMessage;

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۲۳-دى-۱۳۸۸, ۰۱:۲۳:۲۲
وب سایت ارسال‌ها
پاسخ
veyskarami غایب
مدیر بازنشسته
*****

ارسال‌ها: 861
موضوع‌ها: 82
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 477
( 2479 تشکر در 611 ارسال )
ارسال: #9
RE: شبيه سازي وقفه (sleep از نوع ديگش)
توي كنسول به مشكل مي خوري يا اينكه حجم ميره بالا

۲۳-دى-۱۳۸۸, ۱۱:۰۳:۵۵
وب سایت ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #10
RE: شبيه سازي وقفه (sleep از نوع ديگش)
فکر نکنم
همه برنامه ها یک کلاس مجزا از نوع TApplication دارن چه کنسول چه Vcl

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۲۳-دى-۱۳۸۸, ۱۶:۴۶:۳۹
وب سایت ارسال‌ها
پاسخ
veyskarami غایب
مدیر بازنشسته
*****

ارسال‌ها: 861
موضوع‌ها: 82
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 477
( 2479 تشکر در 611 ارسال )
ارسال: #11
RE: شبيه سازي وقفه (sleep از نوع ديگش)
خوب یه تست بزن ببینیم حجم خروجی چجوریاست.

۲۸-بهمن-۱۳۸۸, ۱۷:۵۳:۱۱
وب سایت ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  تشخیص Hibernate/Sleep The.Ghost 1 1,859 ۲۲-شهریور-۱۳۹۴, ۱۴:۱۲:۳۰
آخرین ارسال: lord_viper
  [سوال] شبيه سازي كليك موس mehdi_moosavi 8 4,319 ۲۸-شهریور-۱۳۹۲, ۱۳:۵۹:۴۳
آخرین ارسال: veyskarami
  چگونگي شبيه سازي كليدenter لطفا كمك mehdi-213 7 4,255 ۰۷-اسفند-۱۳۸۴, ۰۷:۲۶:۴۶
آخرین ارسال: lord_viper
  فارسي سازي ياهو مسنجر ( يه كليك ضرر نداره!!؟!!) vahid2000 8 7,428 ۱۸-خرداد-۱۳۸۴, ۰۲:۴۳:۴۴
آخرین ارسال: NET_MAN

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS