نمایش نتایج 1 تا 18 از 18

نام تاپیک: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

  1. #1

    چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

    با سلام خدمت همه دوستان

    من یه برنامه محاسباتی سنگین دارم که خروجی این برنامه جوابهایی دارد که هرکدام از جوابها دارای 10 تا پارامتر هستندحالا میخوام با استفاده از progress bar و background worker درصد پیشرفت کار و همچنین زمان انجام کار رو داشته باشم ( یعنی وقتی کاربر دکمه run رو کلیک کرد کل زمان نشون داده بشه و با پیشرفت کار از زمان کم بشه, مثل وقتی که فایلی رو کپی میکنیم زمان رو نشون می ده) اما متاسفانه نمیدونم برای انجام درصد پیشرفت کار BackgroundWorker1.ReportProgressرو چطور مقدار دهی کنم و همچنین روش محاسبه زمان رو بشکلی که بالا توضیح دادم رو نمی دونم

  2. #2

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

    پروژه پیوست شده رو ببین
    فایل های ضمیمه فایل های ضمیمه

  3. #3

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

    منم خیلی دنبال این مورد هستم؛ تمام آموزش ها و نمونه پروژه هایی که دیدم، یه عدد میذارن و اینجور نیست که زمان انجام برنامه رو تخمین بزنه. اگه کسی همچین کدی داشته باشه، مضایقه نکنه...

  4. #4
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه


  5. #5

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

    نقل قول نوشته شده توسط mousa1992 مشاهده تاپیک
    پروژه پیوست شده رو ببین
    با تشکر از شما دوست عزیز منطورم این نبود که خودتون دستی یه مقدار بهش بدین ! بلکه بطور واقعی و با پیشرفت کار محاسباتی مقادیر واقعی نشون داده بشه !!!

  6. #6

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

    از پست اولتون برداشت میشه که نمیدونید چجوری با backgroundworker کار کنید منم ی نمونه بهتون دادم
    بستگی به کاری که میخواید انجام بدید داره اگه مثلا میخواین ی چیزی رو از دیتابیس فراخوانی کنید که به راحتی میتونید انجام بدید ( تعداد رکوردهارو میگیرید و max مربوط به progressBar رو تعداد میذارید و یکی یکی رکورد هارو بازگردانی میکنید و یا اگه بخواین عمل کپی انجام بدید میتونید از متدهایی که خودتون مینویسید برا کپی کردن استفاده کنید تا بتونید حین انجام کار گزارش از پیشرفت هم بگیرید و خب عملیاتی مثل بکاپ گیری هم باز به همین صورت میشه هرچند برا بعضی کارها کامپوننت هایی رو طراحی کردند که میتونی پیشرفت کارو ببینی
    دقیق بگو چیکار میخوای انجام بدی

  7. #7

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

    نقل قول نوشته شده توسط FastCode مشاهده تاپیک
    با تشکر از شما

    دوست عزیز من متوجه نشدم که چی میگن!!!! میشه خودتون یه توضیحی بدین

  8. #8
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

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

  9. #9

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

    نقل قول نوشته شده توسط mousa1992 مشاهده تاپیک
    از پست اولتون برداشت میشه که نمیدونید چجوری با backgroundworker کار کنید منم ی نمونه بهتون دادم
    بستگی به کاری که میخواید انجام بدید داره اگه مثلا میخواین ی چیزی رو از دیتابیس فراخوانی کنید که به راحتی میتونید انجام بدید ( تعداد رکوردهارو میگیرید و max مربوط به progressBar رو تعداد میذارید و یکی یکی رکورد هارو بازگردانی میکنید و یا اگه بخواین عمل کپی انجام بدید میتونید از متدهایی که خودتون مینویسید برا کپی کردن استفاده کنید تا بتونید حین انجام کار گزارش از پیشرفت هم بگیرید و خب عملیاتی مثل بکاپ گیری هم باز به همین صورت میشه هرچند برا بعضی کارها کامپوننت هایی رو طراحی کردند که میتونی پیشرفت کارو ببینی
    دقیق بگو چیکار میخوای انجام بدی
    با سلام مجدد
    من برنامم یه برنامه محاسباتیه , چند تا پارامتر رو به عنوان ورودی می گیره و محاسبات لازم رو انجام می ده و یه تعداد جواب می ده , حالا من می خوام که با یه proggress bar میزان پیشرفت کار رو به کاربر نمایش بدم , تا جایی که می دونم برای این کار بهترین روش استفاده از backgroundworker هستش , اما برای نشون دادن درست پیشرفت کار نمی دونم چطور باید BackgroundWorker.ReportProgress رو مقدار دهی کنم , مثالی رو که شما نوشتین در صورتی که ما یک حلقه داشته باشیم و تمام کارهامون تو اون حلقه انجام بشه کاربردیه ولی برنامم جوریه که چندتا حلقه داره که تو در تو نیستن , در واقع بخش اول سوال من اینجاست که چجوری بایدBackgroundWorker.ReportProgress رو مقدار دهی کنم؟
    در مورد بخش دوم هم اگر راهنماییم کنید ممنون میشم

  10. #10

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

    نقل قول نوشته شده توسط FastCode مشاهده تاپیک
    باید یک مقدار حساب دیفرانسیل بلد باشید.فکر نمیکنم طور دیگه بشه توضیح داد.
    والا حساب دیفرانسیلم بد نیست ولی زبانم خوب نیست ( با مترجم گوگل ترجمه کردم ولی چیزی دستگیرم نشد )

  11. #11
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

    متغیر و پارامتر خیلی داره و با توجه به شراط باید فرمول رو بنویسید.
    مثلا اینکه میخواهید همه ی نمونه ها در نظر گرفته باشه یا نه؟
    همه یک اندازه در تخمین تاثیر بزارن یا نه؟
    همه نمونه ها مقدار ثابتی دارند یا نه؟
    آیا ممکنه بینشون pause شده باشه یا نه؟
    اگر pause وجود دارد:
    ممکن است حجم cache در محاسبه زمان تاثیر داشته باشد؟
    اگر سیستم عامل چیزی را buffer یا cache میکند باید در نظر گرفته شود یا خیر؟
    آیا همزمان اجرا شدن یا نه؟
    آیا برنامتون به عملکرد سخت افزار دیگه ای وابسته هست و میخواهید در صورتی که توسط برنامه ی دیگه ای استفاده میشده در نظر گرفته بشه؟
    اگر چند نوع عملیات انجام میشود(مثل دانلود منجر ها;دانلود و ذخیره کردن اطلاعات) کدام یک باید در محاسبه نقش داشته باشد؟
    اگر تعداد عملیات بسیار زیاد است و محاسبه وقت گیر عملیات باید به چه شکل دسته بندی شوند؟(کپی کردن تعداد زیادی فایل)
    اگر بعضی از عملیات طولانی هستند آیا نیاز به خرد شدن دارند یا نه؟(کپی کردن چند فایل حجیم)
    و خیلی سوالات دیگه که روی فرمولتون تاثیر میزارن و تا خیلی هاشون رو آزمایش نکنید نمیتونید تصمیم بگیرید.
    برای همین میگم که باید حساب دیفرانسیل بلد باشید.پایه کامپیوتر فوتوشاپ نیست.ریاضیه.

  12. #12

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

    نقل قول نوشته شده توسط FastCode مشاهده تاپیک
    متغیر و پارامتر خیلی داره و با توجه به شراط باید فرمول رو بنویسید.
    مثلا اینکه میخواهید همه ی نمونه ها در نظر گرفته باشه یا نه؟
    همه یک اندازه در تخمین تاثیر بزارن یا نه؟
    همه نمونه ها مقدار ثابتی دارند یا نه؟
    آیا ممکنه بینشون pause شده باشه یا نه؟
    اگر pause وجود دارد:
    ممکن است حجم cache در محاسبه زمان تاثیر داشته باشد؟
    اگر سیستم عامل چیزی را buffer یا cache میکند باید در نظر گرفته شود یا خیر؟
    آیا همزمان اجرا شدن یا نه؟
    آیا برنامتون به عملکرد سخت افزار دیگه ای وابسته هست و میخواهید در صورتی که توسط برنامه ی دیگه ای استفاده میشده در نظر گرفته بشه؟
    اگر چند نوع عملیات انجام میشود(مثل دانلود منجر ها;دانلود و ذخیره کردن اطلاعات) کدام یک باید در محاسبه نقش داشته باشد؟
    اگر تعداد عملیات بسیار زیاد است و محاسبه وقت گیر عملیات باید به چه شکل دسته بندی شوند؟(کپی کردن تعداد زیادی فایل)
    اگر بعضی از عملیات طولانی هستند آیا نیاز به خرد شدن دارند یا نه؟(کپی کردن چند فایل حجیم)
    و خیلی سوالات دیگه که روی فرمولتون تاثیر میزارن و تا خیلی هاشون رو آزمایش نکنید نمیتونید تصمیم بگیرید.
    برای همین میگم که باید حساب دیفرانسیل بلد باشید.پایه کامپیوتر فوتوشاپ نیست.ریاضیه.
    با تشکر از شما

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

  13. #13
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

    نقل قول نوشته شده توسط papeli_83 مشاهده تاپیک
    با تشکر از شما

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

  14. #14

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

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

    using Microsoft.VisualBasic;
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Data;
    using System.Diagnostics;
    Public Class Form1
    {

    private static int sum;
    private static int t;

    private static int s;
    private void BackgroundWorker1_DoWork(System.Object sender, System.ComponentModel.DoWorkEventArgs e)
    {
    for (int i = 1; i <= 10000; i++) {
    for (int j = 1; j <= 10000; j++) {
    sum = (sum + i) % j;
    }
    if (BackgroundWorker1.CancellationPending) {
    return;
    }
    // BackgroundWorker1.ReportProgress(i / 1000)
    }
    for (int k = 1; k <= 10000; k++) {
    t = k + 2 * k;
    }
    s = t + sum;
    }

    private void Button1_Click(System.Object sender, System.EventArgs e)
    {
    Button1.Enabled = false;
    Button2.Enabled = true;
    ProgressBar1.Value = 0;
    ProgressBar1.Visible = true;
    BackgroundWorker1.RunWorkerAsync();
    }

    private void BackgroundWorker1_RunWorkerCompleted(System.Object sender, System.ComponentModel.RunWorkerCompletedEventArgs e)
    {
    Button1.Enabled = true;
    Button2.Enabled = false;
    ProgressBar1.Visible = false;
    }

    private void BackgroundWorker1_ProgressChanged(System.Object sender, System.ComponentModel.ProgressChangedEventArgs e)
    {
    ProgressBar1.Value = e.ProgressPercentage;
    ProgressBar1.CreateGraphics().DrawString(e.Progres sPercentage.ToString() + "%", new Font("Arial", 8.25, FontStyle.Regular), Brushes.Black, new PointF(ProgressBar1.Width / 2 - 10, ProgressBar1.Height / 2 - 7));
    }

    private void Button2_Click(System.Object sender, System.EventArgs e)
    {
    BackgroundWorker1.CancelAsync();
    }
    }

  15. #15
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

    برنامه با برنامه فرق داره.
    توی این مثال که اشتباه محاسباتی هم داره خیلی ساده میشه با مشتق هم مساله رو حل کرد و هیچ نیازی به دیفرانسیل نداره.
    برنامه اصلی رو بزارید.

    اینها همه مثال و نمونه کد برای حالتی که هیچ کدوم از اون اگر ها نیستند:
    http://stackoverflow.com/questions/4...time-remaining

  16. #16

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

    ممنون از راهنماییتون ولی برنامه اصلی رو متاسفانه نمی تونم بزارم
    (امشب که وقت نمیشه ولی فردا سعی میکنم برنامه شبیه برناممو قرار بدم )

  17. #17
    کاربر دائمی
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    کنار یه ساحل خیلی زیبا
    پست
    922

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

    نقل قول نوشته شده توسط mousa1992 مشاهده تاپیک
    از پست اولتون برداشت میشه که نمیدونید چجوری با backgroundworker کار کنید منم ی نمونه بهتون دادم
    بستگی به کاری که میخواید انجام بدید داره اگه مثلا میخواین ی چیزی رو از دیتابیس فراخوانی کنید که به راحتی میتونید انجام بدید ( تعداد رکوردهارو میگیرید و max مربوط به progressBar رو تعداد میذارید و یکی یکی رکورد هارو بازگردانی میکنید و یا اگه بخواین عمل کپی انجام بدید میتونید از متدهایی که خودتون مینویسید برا کپی کردن استفاده کنید تا بتونید حین انجام کار گزارش از پیشرفت هم بگیرید و خب عملیاتی مثل بکاپ گیری هم باز به همین صورت میشه هرچند برا بعضی کارها کامپوننت هایی رو طراحی کردند که میتونی پیشرفت کارو ببینی
    دقیق بگو چیکار میخوای انجام بدی
    با سلام بعضیی مواقع من با مشکل مواجه میشم تو این مسئله شما فکر کنید 150 (البته به فرض تعداد نا معلوم و بالاتر از صد) سطر تو گرید هست که میخوای تو دیتابیس درج کنی یا هر کاری که تعداد بیشتر از 100 هست اونقت پروگرس بار خطا ماکزیمم ولیو میده این موارد رو چطور حل کنیم یا اصلا بعضی مواقع با چیزی هایی طرف هستیم که خاصیتی مثل طول و... ندارن که بشه با اون کار کرد در این موارد چکار کنیم

  18. #18

    نقل قول: چگونگی نمایش میزان پیشرفت و زمان باقی مانده برای انجام پروسه

    با سلام بعضیی مواقع من با مشکل مواجه میشم تو این مسئله شما فکر کنید 150 (البته به فرض تعداد نا معلوم و بالاتر از صد) سطر تو گرید هست که میخوای تو دیتابیس درج کنی یا هر کاری که تعداد بیشتر از 100 هست اونقت پروگرس بار خطا ماکزیمم ولیو میده این موارد رو چطور حل کنیم یا اصلا بعضی مواقع با چیزی هایی طرف هستیم که خاصیتی مثل طول و... ندارن که بشه با اون کار کرد در این موارد چکار کنیم
    سلام
    progressBar محدودیتی برا maximum مقدار نداره و نمیدونم چرا چنین خطایی میگیره
    برا اون چیزایی که میگی هر کدوم راهی داره خب مثلا برا کپی گرفتن خودت باید انجامش بدی و الگوریتم ها رو بنویسی ( البته من این کارو نکردم ) برا چه کاری میخواین روند پیشرفتو نمایش بدین ؟

تاپیک های مشابه

  1. نمایش زمان باقی مانده برای خالی شدن session
    نوشته شده توسط ramin149 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: سه شنبه 14 تیر 1390, 14:31 عصر
  2. سوال: کد زمان باقی مانده
    نوشته شده توسط farshad_momtaz در بخش PHP
    پاسخ: 3
    آخرین پست: دوشنبه 30 شهریور 1388, 23:02 عصر
  3. نمایش میزان پیشرفت پروسه
    نوشته شده توسط vb study در بخش برنامه نویسی در 6 VB
    پاسخ: 4
    آخرین پست: دوشنبه 30 شهریور 1388, 14:30 عصر
  4. چگونگی نمایش میزان نرمال در نمودار
    نوشته شده توسط mrs Izadi در بخش گزارش سازی با Crystal Report
    پاسخ: 1
    آخرین پست: چهارشنبه 20 شهریور 1387, 10:22 صبح
  5. تایمر برای نشان دادن زمان باقی مانده از ابطال cookie
    نوشته شده توسط rainynight در بخش ASP.NET Web Forms
    پاسخ: 17
    آخرین پست: چهارشنبه 05 مهر 1385, 15:02 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •