PDA

View Full Version : بلاک کردن صفحه و گذاشتن علامت پردازش در تکه کد صفحات وب



nbe( amateur C sharp
شنبه 15 بهمن 1390, 13:14 عصر
با سلام.... دوستان من به یک مسئله ای برخوردم...

من یک صفحه وب دارم که میخوام وقتی بر روی یک button آن کلیک کردم بک کار پردازشی انجام دهد که حداکثر 10 ثانیه برای انجام آن فرصت دارد ، در این میان به محض اینکه جواب را به دست آورد نمایش دهد و اگر بیشتر از 10 ثانیه طول کشید باید یک پیغام خطا نمایش دهد ، در این فاصله یک علامت پردازشی هم بر روی صفحه بچرخد.... نمیدونم باید چه طور این کار را انجام دهم ، میشه راهنمائیم کنید...

ممنونم چون سر این قسمت خیلی معتلم و سریعا بهش نیاز دارم....

hamid_shrk
شنبه 15 بهمن 1390, 14:42 عصر
میخواید 10 ثانیه صبر کنه یا اینکه عملیاتتون 10 ثانیه طول میکشه؟
از کجا مکیدونید که قراره 10 ثانیه طول بکشه؟

nbe( amateur C sharp
شنبه 15 بهمن 1390, 14:58 عصر
میخوام حداکثز 10 ثانیه صبر کنه و توی اون مدت اون علامت پردازش روی صفحه باشه ، خود عملیات ممکنه 2 یا 3 ثانیه بیشتر طول نکشه که این مدت متغیره، ولی max باید 10 ثانیه صبر کنه ، تو این مدت هر وقت نتیجه اومد نمایش بده اگر 10 ثانیه تموم شد و نتیجه نیومد پیغام خطا بده.... .

hamid_shrk
شنبه 15 بهمن 1390, 15:11 عصر
شما باید از update panel و update progress استفاده کنید.
لودینگ رو باید تو update progress بزارید .
و با ترد هم یک وقفه 10 ثانیه ای ایجاد کنید و هم عملیت رو انجام بدید.
من خودم تاحالا اینکارو نکردم اما فکر کنم جواب بده

nbe( amateur C sharp
شنبه 15 بهمن 1390, 15:23 عصر
اگر این تنها راه است ، من از update panel و update progress استفاده کردم و در داخل کدم دارم

System.Threading.Thread.Sleep(10000); که باعث میشه 10 ثانیه صبر کنه ، اما همیشه این همان 10 ثانیه را صبر میکند و اگر در کمتر از 10 ثانیه جواب بیاد اون رو همون لحظه نمایش نمیده، واسه این مشکل چی کار کنم؟

hamid_shrk
شنبه 15 بهمن 1390, 16:07 عصر
مشکل این دستور اینه که اول 100 ثانیه صبر میکنه و بعد کد رو اجرا میکنه.
باید این دو همزمان اجرا بشن که وقتی عملیات تموم شد وقفه رو هم تموم کنیم

nbe( amateur C sharp
شنبه 15 بهمن 1390, 16:13 عصر
یعنی چی کارش کنم ؟ بگدازمش اول کد مربوط به button ؟ ممکنه عملیات 10 ثانیه طول نکشه ، میخوام اگه 2 ثانیه هم طول کشبد ، بعد از تمام شدن 2 ثانیه این وقفه هم بایسته.............. چی کارش کنم آخه؟؟؟؟

Saman Hashemi
شنبه 15 بهمن 1390, 17:38 عصر
شما داری ترد جاری 10 ثانیه در حالت sleep نگه میداری بعد توقع دارید جواب بده بهتون...!:متفکر:
در مورد برنامه نویسی موازی و استفاده از MultiThread تحقیق کنید این شیوه شما اشتباه است...!

Slytherin
شنبه 15 بهمن 1390, 19:09 عصر
دوست عزیز شما که داری از update panel و update progress استفاده می کنی، خب پس دیگه چه کاریه، یه تایمر هم تنگش کن خلاص!
یه تایمر با اینترول 1000 روی پنلت بذار که هر سری یک واحد به یه متغیر اضافه کنه، بعد با توجه به مقایسه مقدار متغییر با عدد 10 کارات رو انجام بده...

Saman Hashemi
یک شنبه 16 بهمن 1390, 08:17 صبح
دوست عزیز شما که داری از update panel و update progress استفاده می کنی، خب پس دیگه چه کاریه، یه تایمر هم تنگش کن خلاص!
یه تایمر با اینترول 1000 روی پنلت بذار که هر سری یک واحد به یه متغیر اضافه کنه، بعد با توجه به مقایسه مقدار متغییر با عدد 10 کارات رو انجام بده...
به نظر شما این کار بهینه است که ظرف 10 ثانیه 10 بار یه رویداد اتفاق بیوفته؟

nbe( amateur C sharp
یک شنبه 16 بهمن 1390, 08:48 صبح
شما داری ترد جاری 10 ثانیه در حالت sleep نگه میداری بعد توقع دارید جواب بده بهتون...!:متفکر:
در مورد برنامه نویسی موازی و استفاده از MultiThread تحقیق کنید این شیوه شما اشتباه است...!

بله من هم میدونم چون روی ترد دارم sleep میکنم این مشکل وجود داره ، ولی نمیدونم که چطور باید درستش کنم ؟ میشه راهنمائی کنید که چه طور درستش کنم چون من کارم خیلی روی این قضیه گیر کرده، که به محض این که جواب رو گرفت نمایش بده و به اندازه تمام 10 ثانیه صبر نکنه، شما میدونید باید چی کار کنم؟؟؟

nbe( amateur C sharp
یک شنبه 16 بهمن 1390, 08:51 صبح
دوست عزیز شما که داری از update panel و update progress استفاده می کنی، خب پس دیگه چه کاریه، یه تایمر هم تنگش کن خلاص!
یه تایمر با اینترول 1000 روی پنلت بذار که هر سری یک واحد به یه متغیر اضافه کنه، بعد با توجه به مقایسه مقدار متغییر با عدد 10 کارات رو انجام بده...

ممنونم از راهنمائیتون ، این کار باعث به وجود اومدن چندین ترد میشه که تا پایان کار اکتیو میمونن و با توجه به حجم کار این کار بهینه نیست برام و این که این عمل که باید 10 ثانیه صبر کنه خیلی زیاد انجام میشه و این پیاده سازی برام مشکل ساز میشه ، چون زمان توی این قسمت برای مهمه که حتما در عرض چند ثانیه انجام بشه و نمایش بده پاسخ رو ....

nbe( amateur C sharp
یک شنبه 16 بهمن 1390, 10:55 صبح
من چند تا sample هم دیدم اونه هم thread.sleep استفاده کرده بودن!!!!!!!!!!!!!!!!!!!!11

Saman Hashemi
یک شنبه 16 بهمن 1390, 12:08 عصر
من چند تا sample هم دیدم اونه هم thread.sleep استفاده کرده بودن!!!!!!!!!!!!!!!!!!!!11
آدرس مثال ها قرار بدید بعدم مطمئن هستید مثال برای تست Progress Bar نبوده...؟!

nbe( amateur C sharp
یک شنبه 16 بهمن 1390, 12:17 عصر
http://ajax.net-tutorials.com/controls/updateprogress-control/

اکر update progress و update panel فقط برای کنترل کردن progress bar باشن ، پس نمیشه من ازشون تو این روش استفاده کنم؟ چون روی ترد sleep میشه؟؟!!!

Slytherin
یک شنبه 16 بهمن 1390, 16:15 عصر
به نظر شما این کار بهینه است که ظرف 10 ثانیه 10 بار یه رویداد اتفاق بیوفته؟

خیر بهینه نیست ولی در پرسش درخواستی هم مبنی بر بهینه بودن کد داده نشده!
من میگم اگه در حد یک پروژه کوچیک و یا یک نمونه کد آزمایشی هست برای چی کد رو بپیچونیم...

nbe( amateur C sharp
دوشنبه 17 بهمن 1390, 12:19 عصر
کسی میتونه کمک کنه!!!!!!!!!!!!!!!!!!!!!1