PDA

View Full Version : مشكل در لود شدن كند فرم ها



parsaei
پنج شنبه 12 آبان 1390, 12:11 عصر
سلام، من يه برنامه دارم كه توي بعضي از فرمهاش تعدادي زيادي Combo و Textbox و check دارم كه بعضي هاشون Bind شدن. مشكل اينه كه وقتي ميخوام فرم را نمايش بدم، حدود 3-4 ثانيه براي Load شدنش وقت ميبره:افسرده:
از ابزارهاي DevComponent 8.0 استفاده كردم و قالب فرمم Office2007 هست و توي VS 2005 با C# نوشتم.
البته بگم، عين همين فرم را با ابزارهاي خود ويژوال استوديو هم ساختم اما سرعت زياد فرقي نكرد
برنامه مشابه همين برنامه رو تو بازار ديدم، رو سيستمم اجرا كردم اما به اين كندي نيست!!
حالا من ميترسم وقتي پروژه را به مشتري هام تحويل بدم روي سيستم اونها كه شايد مشخصاتش از سيستم من هم پايين تر باشه افتضاح لود بشه و اصلا فروش نره

لطفا براي افزايش سرعت Load فرم هام روي كامپيوتر نهايي راه حل بديد ممنون:تشویق:

pooria_googooli
پنج شنبه 12 آبان 1390, 15:04 عصر
خب به عوامل زیادی بستگی داره . یکیش کامپوننت هایی که استفاده میکنی . یکی دیگه نوع کد نویسته .برو ببین توی فرم لودت چی نوشتی که باعث کاهش سرعت میشه . مثلا حلقه foreach خیلی سرعت را کاهش میده.

parsaei
جمعه 13 آبان 1390, 10:18 صبح
بايد يادآوري كنم سرعت فرمم در زماني كه هيچ كدي نداشت با الان كه براش كد نوشتم، زيادي فرقي نكرده
همچنين گفتم كه با ابزارهاي استاندارد خود دات نت هم سرعتش زياد فرقي نداشت
اگه كسي راهنمايي كنه ممنون ميشم

jmfnima
جمعه 13 آبان 1390, 13:36 عصر
با سلام به شما دوست عزیز
من هم همین مشکل رو توی برخی از فرم هام داشتم و هرکاری کردم درست نشد مجبور شدم یک فرم مثل همون فرم درست کنم بعد هم فرم قبلی رو پاک کردم .

parsaei
جمعه 13 آبان 1390, 16:43 عصر
من دقيقا همين كار را كردم اما فايده اي نداشته :گریه:

_elhfarzan
شنبه 14 آبان 1390, 16:38 عصر
عزیزم اولا که حرفت بی معنیه.یعنی چی بدون کد هم کند بالا میاد
2- اگر از بانکهای اطلاعاتی استفاده میکنی = از پروسجیرهای اماده شده در بانک یا توابع نوشته شده در بانکهای اطلاعاتی استفاده کن.یعنی اول برو تو sql تابع یا پروسجر بنویس بعد بیارش تو فرمت بایند کن یا از ویو استفاده کن که سرعت برنامه رو تا چندیدن برابر زیاد میکنه.
البته این برای پروژه های بزرگ یه کار اجباریه
3-اگه پروژه شما کوچیکه و حال یاد گرفتن اینارو نداری از نخ ها استفاده کن و ÷پروسس بار بزار کاربر سرگرم دیدن اون شه.یه کار حرفه ای هم است جیگر

public void NewTread()
{
WorkerPross wp = new WorkerPross();
wp.ShowDialog();
}

private void DoreHa_Load(object sender, EventArgs e)
{
Thread t = new Thread(NewTread);
t.Start();

......بایند کردن کدهای برنامه در فرم لود
t.Abort();
}

این WorkerPross یه فرم هست که توش یه پروسس بار گذاشته شده

BahmanDB
شنبه 14 آبان 1390, 17:07 عصر
دوست عزيز چك كن ببين از دستورات select كه استفاده كردي star نزني .
تو سرعت لود عامل مهميه البته اگه ديتابيس پر باشه

parsaei
چهارشنبه 25 آبان 1390, 11:23 صبح
جواب را يافتم :گیج:
ممنون از جوابهاي همه دوستان، گرچه هيچكدوم مشكل را حل نكرد!
روي فرم من حدود 25-30 عدد comboBox وجود داشت كه به بانك متصل بودن، اين Combo ها هم از كامپوننت هاي DevComponent استفاده كرده بودم. توي يه تست اين Combo ها را به Combo هاي استاندارد دات نت تغيير دادم كه سرعت Load فرم حدود 2 برابر شد !:متفکر:
نتيجه: استفاده زياد از comboBox هاي Dev در يك فرم، بشدت موجب كندي Load اون فرم ميشه:لبخندساده:

majid.gymnast
شنبه 01 بهمن 1390, 17:50 عصر
سلام
من هم در تمام فرم هام این مشکل رو دارم و حتی تعداد کنترل هام هم اندک ولی لود فرم خیلی کنده؟(دیتاگریدویو و تکست باکس و چندتا باتن)

b.saminjad
شنبه 01 بهمن 1390, 19:45 عصر
سلام

دوستانی که بالا امودن برنامه شون خیلی زیاد طول میکشه میتونن یه splash screen بسازن سر کاربر گرم شه چند ثانیه تا برنامه بالا بیاد
فایدش اینه هم کاربر نمیفهمه برنامه دیر بالا میاد هم توضیحاتی برای معرفی یا ... میشه بهش اضافه کرد

parsaei
شنبه 14 اردیبهشت 1392, 17:07 عصر
من بعد از مدتها برنامه نویسی می خوام خودم جواب درست این تاپیک را بدم. معمولا در حالت debug که برنامه اجرا میشه اجرا شدنش به کندی انجام میشه
اما وقتی که برنامه را releas کرده و فایل exe ایجاد شده را اجرا کنید می بینید که سرعت اجرا کاملا متفاوت بوده و خبری از اون کندی سرعت نیست