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

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




نمايش نتايج 1 به 5 از 5

نام تاپيک: استفاده از یه بک گراند ورکر!

  1. #1
    آخر فروم باز H A M A S's Avatar
    تاريخ عضويت
    May 2006
    پست ها
    3,294

    پيش فرض استفاده از یه بک گراند ورکر!

    من یه کد ثبت اطلاعات دارم که اجراش یکم طول میکشه
    میخوام برای سرعتش بعضی از کارهای شرطی رو با بک گراند ورکر انجام بدم
    برای همین این کد رو نوشتم
    اما نمیدونم چه طوری بعد از این که شرطها رو چک کردم.توی رویداد کلیک دکمه به متغیرهای driverinq- driverins
    دسترسی پیدا کنم
    اگر یه نفر زحمت بکشه طرز صحیح استفاده از این ابزار رو برای چک کردن این شرط ها بهم بگه ممنون میشم

    اینم کدی که برای اعمال بک گراند ورکر نوشتم!
    فقط بهم بگید چه طوری میتونم به دوتا متغیری که توی2 خط اول تعریف کردم در سراسر برنامه دسترسی داشته باشم و مقدارشون رو چک کنم!

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by H A M A S; 14-08-2011 at 09:15.

  2. #2
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    فقط بهم بگید چه طوری میتونم به دوتا متغیری که توی2 خط اول تعریف کردم در سراسر برنامه دسترسی داشته باشم و مقدارشون رو چک کنم!
    خوب میتوانید دو متغییر را در سطح کلاس (مثلاً فرم جاری) عمومی تعریف کنید.
    این کد خیلی نمادین و کلی است:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    فقط کافیست مطمئن شوید که کار DoWork پایان یافته و مقادیر این دو متغییر در وضعیت صحیحی قرار گرفته.
    طبیعتاً اگر لازم است کد اطلاع رسانی و تغییر UI هم بعد پایان DoWork انجام شود با متد BeginInvoke بدون مشکل قابل انجام خواهد بود.

    در ضمن اگر دستورات شما واقعاً روی دیتابیس عمل میکند نوشتن یک StoredProcedure مناسب در SQL و استفاده صحیح از ایندکس گذاری میتواند سرعت پرس و جوی دیتابیسی شما را بسیار افزایش دهد.
    موفق باشید.
    Last edited by _H2_; 14-08-2011 at 12:13.

  3. 2 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


  4. #3
    آخر فروم باز H A M A S's Avatar
    تاريخ عضويت
    May 2006
    پست ها
    3,294

    پيش فرض

    سلام

    خوب میتوانید دو متغییر را در سطح کلاس (مثلاً فرم جاری) عمومی تعریف کنید.
    این کد خیلی نمادین و کلی است:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    فقط کافیست مطمئن شوید که کار DoWork پایان یافته و مقادیر این دو متغییر در وضعیت صحیحی قرار گرفته.
    طبیعتاً اگر لازم است کد اطلاع رسانی و تغییر UI هم بعد پایان DoWork انجام شود با متد BeginInvoke بدون مشکل قابل انجام خواهد بود.

    در ضمن اگر دستورات شما واقعاً روی دیتابیس عمل میکند نوشتن یک StoredProcedure مناسب در SQL و استفاده صحیح از ایندکس گذاری میتواند سرعت پرس و جوی دیتابیسی شما را بسیار افزایش دهد.
    موفق باشید.
    فقط این کد من یکم طولانی چون
    نزدیک 13 فیلد در یک جدول درج میشه
    بعد اگر شرطهایی که توی بک گراند ورکر نوشتم درست باشه
    2 تا فیلد از دو جدول متفاوت رو پاک میکنه!
    و این کار شاید نزدیک 15 ثاینه طول بکشه!
    برای همین شدیدا دنبال راه های برای کاهش سرعت انجام عملیاتم

    ولی البته یه سوال کلی:استفاده از رویه های ذخیره شده در همه جا لازمه؟؟چون توی برنامه من شاید ده ها مورد درج و اکشی اتفاق بیفته
    مثلا یه جدول با 4 تا فیلد که قراره توش اطلاعات درج بشه.اونم بهتره با رویه های ذخیره شده انجام داد یا به طور معمولی از داخل برنامه؟؟

    با تشکر...

  5. #4
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    این کار شاید نزدیک 15 ثاینه طول بکشه!
    خیلی عجیب است، کارهای بیان شده در قد و قواره این زمان نیست، یعنی باید بسیار سریعترتر انجام شود.
    شاید اگر طور صحیح تری کار را انجام دهید، در کسری از ثانیه انجام شود!

    استفاده از رویه های ذخیره شده در همه جا لازمه؟
    من نمیتوانم به شما فرمول کلی بگویم، این شما به عنوان برنامه نویس هستیبد که با جمیع شرایط این تصمیم را میگیرید.
    ولی بحرحال معمولاً شخصاً برای هر جدول دیتابیس حداقل دو SP برای حذف و درج و بروزرسانی ایجاد میکنم.

    ضمن اینکه گاهاً و بسته به شرایط برای انجام کارهای خاصی که یک روند مشخص هستند و باید چندین SELECT و UPDATE و... در یک بار اجرا شوند هم بجای نوشتن تک تک دستورات SELECT و UPDATE و فراخوانی تک به تک در برنامه، برای ان روند خاص یک SP تولید میکنیم.

    مثلاً در دیتابیس شرکت، SP های سفارشی مختلفی برای محاسبات بیمه و حقوق و دستمزد و محاسبات فایفو و لایفو ارزش کالاها در فاکتور و... طراحی کردیم و استفاده میکنیم.

    در واقع همانطور که در بالاگفتم، معمولاً جاییکه میبینیم کدهای درون برنامه میخواهند پشت سر هم SELECT و INSERT و UPDATE و DELETE و... انجام دهند، به این هم فکر میکنیم که شاید اگر کل کد با T-SQL و یک SP انجام شود، چطور میشود؟! (در مقابل کدهای مخلوط C#.Net با VB.Net همراه با کدهای ارتباط با دیتابیس لایه DAL)

    =====

    در خصوص خواندن اطلاعات هم (SELECT) اگر نیاز به فیلد محاسباتی خاصی باشد که در جاهای مختلف مقدارش مهم میشود (مثل تعداد اقلام فاکتور که در خود جدول فاکتور ذخیره نمیشود یا ارزش یک سند حسابداری که از جمع سطرها حاصل میشود و...) یک View ایجاد میکنیم که علاوه بر فیلدهای جدول اصلی این فیلدهای محاسباتی را هم در ادامه فیلدهای اصلی پس دهد.
    و در سایر موارد معمولاً دستور SELECT را بیشتر در درون برنامه (لایه خودش) می آوریم ولی باز هم استثنا وجود دارد.


    من شخصاً عادتی به استفاده از ظاهر شدن دستورات غیر SELECT در برنامه ندارم.
    یعنی مثلاً در کدهای شرکت هم اگر درست یادم باشد، شاید بتوانم بگویم هیچ کجای کدها دستور SQL غیر SELECT پیدا نخواهید کرد و بقیه اعمال با حفظ نظم در نامگذاری به کمک SP ها انجام خواهد شد.

    =====

    بحرحال نحوه و چگونگی و محل استفاده از SP را شما باید در برنامه خودتان و با شرایط موجود تشخیص دهید.
    موفق باشید.

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


  7. #5
    آخر فروم باز H A M A S's Avatar
    تاريخ عضويت
    May 2006
    پست ها
    3,294

    پيش فرض

    خیلی عجیب است، کارهای بیان شده در قد و قواره این زمان نیست، یعنی باید بسیار سریعترتر انجام شود.
    شاید اگر طور صحیح تری کار را انجام دهید، در کسری از ثانیه انجام شود!
    البته برای درج اول اینقدر طول میکشه
    و اگر پشت سر اینکه اولین رکورد رو درج کردم-بخوام رکورد دوم رو درج کنم به قول شما در کسری از ثانیه انجام میشه!

    در مورد SP ها:
    من همین قسمتی که گفتم کدش زمانبر هست محاسبه درصد پورسانت رو هم انجام میده!
    که 2 خط بیشتر نیست!
    فکر کنم نوشتن این قسمتش با SP برای شروع یادگیری مناسبه!
    در کل اینجور برداشت کردم که استفاده زیاد از SP ضرری نداره!
    تشکر!

Thread Information

Users Browsing this Thread

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

User Tag List

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

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