PDA

View Full Version : progressbar و وب سرویس



hamed_bostan
چهارشنبه 04 مهر 1386, 13:29 عصر
من یه وب سرویس دارم که طی یه request از ویندوز اپلیکیشنم یه سری اطلاعات رو از دیتابیس هاست میخونه و بر می گردونه . مشکل هنگ کردن سیستم در مدت تراکنش رو با multi treathing حل کردم اما چطور میتونم با یه progress bar پیشرفت عملیات رو نشون بدم؟ مدت کل رو از رو چی محاسبه کنم؟
ممنون از توجهتون

Behrouz_Rad
چهارشنبه 04 مهر 1386, 14:47 عصر
برای آگاهی از میزان حجم داده های دریافتی تا به حال و کل حجم، میشه اینجور گفت که تعداد رکوردهای برگشتی همون حجم کل داده هاست و تعداد رکوردهایی نیز که تا به حال برگشت داده شدند، میزان پیشرفت کار هست.
برای پیاده سازی میزان پیشرفت کار، روال دریافت رکوردها کمی تغییر می کنه و برنامه کمی پیچیده تر میشه.
بدین شکل که فرایند ارسال و دریافت رکوردها باید در چند مرحله که تعداد این مراحل به دلخواه است انجام بپذیره.
کل رکوردها بعد از بازیابی باید به طور موقت در «سمت وب سرویس» در جایی ذخیره بشن...
در روش برنامه نویسی Async Pattern به لطف Callback ها میشه وظیفه ی ارسال درخواست برای دریافت قسمت بعدی داده ها رو به شکل خودکار و هوشمندانه انجام داد!
به عنوان مثال، اگر تعداد رکوردهای بازیابی شده 200 رکورد هست و در 5 مرحله این رکوردها بازیابی میشن و مرحله ی دوم پایان پذیرفته یعنی تا کنون 80 رکورد دریافت شده. بنابراین میزان درصد Progress Bar رو میشه با فرمول ذیل به دست آورد:

میزان پیشرفت به درصد = (تعداد رکوردهای دریافت شده * 100) / تعداد کل رکوردها

موفق باشید.

hamed_bostan
چهارشنبه 04 مهر 1386, 15:02 عصر
واقعا ممنون از چاسخ کاملت بهروز جان


در روش برنامه نویسی Async Pattern به لطف Callback ها میشه وظیفه ی ارسال درخواست برای دریافت قسمت بعدی داده ها رو به شکل خودکار و هوشمندانه انجام داد!

میشه یه ذره بابت این موضوع شفاف سازی کنی ممنونت میشم

Behrouz_Rad
چهارشنبه 04 مهر 1386, 15:10 عصر
در مورد Asynchronous Execution Pattern جستجو کن.

موفق باشی.