تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 2 از 3 اولاول 123 آخرآخر
نمايش نتايج 11 به 20 از 22

نام تاپيک: نمایش یک پیغام خاص یا ... در هنگامی که برنامه در حال پردازش اطلاعات است

  1. #11
    مدیر انجمن برنامه نویسی Payman_62's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    تهران
    پست ها
    2,445

    پيش فرض

    سلام.
    لطفا پست تکراری و بی محتوا نفرستید.
    این روش کار بار تردها.

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  2. #12
    اگه نباشه جاش خالی می مونه M-B-M's Avatar
    تاريخ عضويت
    Mar 2006
    محل سكونت
    ایران - مشهد
    پست ها
    371

    پيش فرض

    لطفا پست تکراری و بی محتوا نفرستید.
    شرمنده دوتا پست تولید شد، نشد یکیشو پاک کنم!

    در مورد کدهاتون هم اگه بیشتر میشد بیشتر توضیح میدادین ممنون میشدم!
    مثلا میفرمودید که چگونه دو عدد Thread ایجاد شده (مثلا دستورات Login برنامه را با دستورات جلو بردن ProcessBar) هماهنگ کنم (بطوری که وقتی اعتبار سنجی نام کاربری و رمز عبور تمام می شود، شی ProcessBar نیز به انتها برسد)

  3. #13
    کـاربـر بـاسـابـقـه am_merman01's Avatar
    تاريخ عضويت
    May 2006
    محل سكونت
    یه جایی گوشه دهکده جهانی تو یه کانکشن دایال آپ
    پست ها
    893

    پيش فرض

    سلام خدمت دوستان عزیز
    دوست من شما ظاهرا در کل در این مورد چیزی نمیدونی پس بهتره که یه کمی در مورد thread یا همون چندریسمانی توی اینترنت تحقیق کنی و نتایج زیادی به دست میاری .
    ولی در کل بهتون بگم که در حالت عادی برنامه شما تقریبا به صورت خطی پیش میره و تا زمانی که یک دستور به پایان نرسه دستور بعدی اجرا نمیشه.
    ولی در حالت استفاده از چند ریسمان در برنامه شما میتونید به طور همزمان چند دستور رو به موازات هم اجرا کنید و با دستوراتی که مینویسید میتونید در هر لحظه که دوست دارید هرکدوم از ریسمان هارو که میخواید متوقف کنید و یا به شکل کامل از کار بیاندازید و حتی تقدم و تاخر ریسمان ها رو تعیین کنید و .....
    و چون بحث یه کم طولانیه (ولی خیلی سادس) بهتره که خودت در موردش یه کم تحقیق کنی بعد راحت تر میشه بهتون کمک کرد تا مشکلاتتون رو رفع کنید.

  4. #14
    آخر فروم باز
    تاريخ عضويت
    Jan 2007
    محل سكونت
    تهران
    پست ها
    1,052

    پيش فرض

    خوب بابا لابد بنده خدا نمیدونه ترد چیه!زور که نیست!

    اگه حالشو داری ترد یاد بگیری که هیچ،ولی اگه حسش نیست خیلی راحت میتونی به برنامت بگی خودشو باز-تازه سازی! کنه.این دستورو آخر حلقه یا بین خط های کد بنویس:

    Windows.Forms.Application.DoEvents()
    اینجوری هر چند وقت یه بار خود فرم خودشو باز-تازه سازی(چیه مگه؟خوب کلمه اختراع کردم!همون Refresh خودمونه!) میکنه.هم Event ها رو میگیری هم ProgressBar هات کار میافتن.اگه مشکلی داشتی پ.خ. بده کامل توضیح بدم واست.

  5. #15
    کـاربـر بـاسـابـقـه am_merman01's Avatar
    تاريخ عضويت
    May 2006
    محل سكونت
    یه جایی گوشه دهکده جهانی تو یه کانکشن دایال آپ
    پست ها
    893

    پيش فرض

    سلام خدمت دوستان عزیز
    ارشیا جان نظر شما هم جالب و سریع و تقریبا کارآمده.
    البته من تا حالا از این روش استفاده نکرده بودم.
    میخواستم بدونم این دستور همون کار دستور
    Me.Refresh()
    رو انجام میده یا چیز متفاوتی هستش؟
    Last edited by am_merman01; 04-03-2009 at 01:10.

  6. #16
    مدیر انجمن برنامه نویسی Payman_62's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    تهران
    پست ها
    2,445

    پيش فرض

    سلام.
    نه me.refresh نیست. کلی تره. کلا یه فرصت به انجام کارهای عقب افتاده میده. مثلا اگه داخل یه حلقه طولانی باشیم یه فرصت کوتاه میده تایمر ها هم اجرا بشن.

  7. #17
    اگه نباشه جاش خالی می مونه M-B-M's Avatar
    تاريخ عضويت
    Mar 2006
    محل سكونت
    ایران - مشهد
    پست ها
    371

    پيش فرض

    لطفا یکی هم ما رو تحویل بگیره!!!!!!!!!!!!!!!
    من یک فرم درست کردم و یک ProcessBar توش گذاشتم زمانی که کاربر روی دکمه login کلیک می کند، بطور دستی تعداد کل دستوراتی که برای دکمه Login نوشته ام را شمرده ام (در هنگام Design) و MaxValue شی ProcessBar را در اولین خط رویداد کلیک برابر با آن قرار دادم و پس از اجرای هر خط دستور یک واحد مقدار Value شی ProcessBar را زیاد کرده ام، و با این کار نتیجه ای که من میخواهم حاصل میشود اما راه اصولی و قابل قبولی نیست!!!
    میخواستم ببینم چگونه می توان این کار را بطور اصولی پیش برد؟؟؟؟

  8. #18
    مدیر انجمن برنامه نویسی Payman_62's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    تهران
    پست ها
    2,445

    پيش فرض

    سلام.
    این کار اصلا منطقی نیست. شاید یه خط 10 ثانیه طول بکشه یه خط 1 میکروثانیه. پروگرس شما کند و تند و غیر یکنواخت پر میشه. ضمن این که کار برنامه نویسی شما 2 برابر شده. فرض کنید 50 خط کد بود چه دردسری داشت. حجم برنامه هم بی دلیل افزایش پیدا میکنه.
    مگه لاگین کردن یوزر چه قدر زمان میبره که پروگرس گذاشتی؟ بیشتر از 10 ثانیه طول میکشه؟ یه پیغام چند لحظه صبر کنید... نمایش بده.

  9. #19
    اگه نباشه جاش خالی می مونه M-B-M's Avatar
    تاريخ عضويت
    Mar 2006
    محل سكونت
    ایران - مشهد
    پست ها
    371

    پيش فرض

    سلام.
    این کار اصلا منطقی نیست. شاید یه خط 10 ثانیه طول بکشه یه خط 1 میکروثانیه. پروگرس شما کند و تند و غیر یکنواخت پر میشه. ضمن این که کار برنامه نویسی شما 2 برابر شده. فرض کنید 50 خط کد بود چه دردسری داشت. حجم برنامه هم بی دلیل افزایش پیدا میکنه.
    مگه لاگین کردن یوزر چه قدر زمان میبره که پروگرس گذاشتی؟ بیشتر از 10 ثانیه طول میکشه؟ یه پیغام چند لحظه صبر کنید... نمایش بده.
    دوست عزیز من لاگین را مثال زدم که دقیقا قابل لمس باشد!!!
    بعد هم گفتم که این کار درستی نیست و از شما خواستم بفرمایید که راه حل اصولی آن چیست؟

  10. #20
    آخر فروم باز
    تاريخ عضويت
    Jan 2007
    محل سكونت
    تهران
    پست ها
    1,052

    پيش فرض

    سلام خدمت دوستان عزیز
    عرشیا جان نظر شما هم جالب و سریع و تقریبا کارآمده.
    البته من تا حالا از این روش استفاده نکرده بودم.
    میخواستم بدونم این دستور همون کار دستور
    Me.Refresh()
    رو انجام میده یا چیز متفاوتی هستش؟
    Refresh فقط فرم رو از نو زنده میکنه و به هیچ کدوم از Event ها اجازه ی اجرا شدن نمیده(اینو تست کردم).با یک کد طولانی هم اگه رو فرم کلیک کنی(مثلا) کلا از کار میافته(اینم تست کردم!اصلا از همینجا بود که DoEvents رو کشف کردم!)
    در حالی که DoEvents به کل برنامه اجازه میده هر کار میخواد بکنه.یعنی اگه یک Module داشته باشی و توش یه فرم تعریف کنی بعد یه DO Loop بذاری و خط آخرش بنویسی Application.DoEvents اونوقت عین اینه که یه Windows Forms Application داری!

    فقط به خاطر تو امضامم عوض کردم.ببین خط آخرش یاد چیزی نمیندازدت؟!

    دوست عزیز من لاگین را مثال زدم که دقیقا قابل لمس باشد!!!
    بعد هم گفتم که این کار درستی نیست و از شما خواستم بفرمایید که راه حل اصولی آن چیست؟
    اگه یه کد خیلی طولانی داشته باشی معمولا حلقست.اگه اینطور نیست سعی کن مقداری که هر دستور طول میکشه رو تخمین بزنی بر اون اساس چند خط یه بار آپدیت کنیش.چون راه خاصی نداره کاری که میخوای بکنی(یا حداقل من بلد نیستم).این کار شبیه Loading بازی ها میشه که چند وقت یه بار میپرن.اونم همچین حالتیه.
    ضمنا حواست باشه که Refresh کردن فرم کار زمان گیریه و میتونه زمان اجرای کدتو خیلی بالا ببره.درست ازش استفاده کن.
    Last edited by Arshia001; 03-03-2009 at 15:35.

  11. این کاربر از Arshia001 بخاطر این مطلب مفید تشکر کرده است


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •