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

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




صفحه 2 از 2 اولاول 12
نمايش نتايج 11 به 17 از 17

نام تاپيک: لود اطلاعات SQL با استفاده از BackgroundWorker

  1. #11
    پروفشنال shadmehrshadow1's Avatar
    تاريخ عضويت
    Oct 2009
    پست ها
    842

    پيش فرض

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

    یک مورد دیگه هم برام پیش میاد که وقتی توی برخی از کدهام که از دستور جوین استفاده میکنم و یک سری اطلاعات رو بر اساس جدول های دیگه به دست میارم . وقتی نتیجه به بدست میاد سطر های تکراری رو توی دیتاگرید میبینیم . مثلا فرض کنید آدرس رو از توی جدول دیگه جوین میگیرم . و آدرس تهران رو جستو جو میکنم و نتایج باید رکورد هایی با کد 2و3و4و8و10 به دست بیاد . توی دیتا گرید این سطر ها چندبار پشت سر هم نمایش داده میشه .

    تقریبا به این شکل:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

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

    پيش فرض

    سلام
    گفتید برخی فرم هایتان باید پشت سرهم و به ترتیب اجرا شوند و یکی وابسته به اتمام خروجی دیگری است...
    در این موارد چند ریسمانی فایده خاصی ندارد، چون مزیت چند ریسمانی در فرآیندهایی است که میتوانند همزمان و موازی در کنار هم اجرا شوند.

    در مورد تصویر gif هم که گفتید حرکت نمیکند، برای عدم استفاده از چند ریسمانی طبیعی است!
    چون وقتی برنامه شما یک ریسمان دارد (همان ریسمان اصلی) همین ریسمان است که مسئول اجرای کدهای زمان بر شما و مسئول بروزرسانی تصویر gif است، در نتیجه وقتی برنامه تان در حلقه ای طولانی گیر کند، تصاویر gif شما هم مانند سایر عناصر واسط کاربری فریز میشوند.

    در خصوص نمایش دیالوگ در حین کار، میتوانید از کدی مانند کد زیر، استفاده کنید.
    ضمن اینکه اگر از کدهای پست قبل هم استفاده کنید در نمایش صحیح فایل های gif مشکلی نخواهید داشت.

    در واقع در کد زیر و کدهای قبل سه تابع وجود دارد.
    اولی محلی برای کدنویسی عملیات های پیش از آغاز ریسمان جدید است.
    بعدی کد زمان بری که باید در حین عملیات ریسمان جدید اجرا شود.
    و تابع سوم عملیاتی که باید پس از پایان ریسمان انجام شود.

    در مورد دیالوگ، کافی است بازکردن و بستن آن به ترتیب در تابع اول و سوم تعبیه شوند.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

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

    پيش فرض

    سلام مجدد
    سوال قبلی تان را فراموش کردم
    این 60 یعنی چی؟! یعنی 60 ثانیه منتظر می ماند که دستور اس کیو ال که برای جست و جو داده ایم اجرا شود . و در صورتی که از این 60 ثانیه بگذرد دستور لغو می شود؟ و یا یک همچین چیزی و یا حتی 60 ثانیه منتظر می ماند که ارتباط به دیتابیس برقرار شود؟!
    همانطور که در پست نهم اشاره کردم دو timeout مجزا برای connection و command وجود دارد.
    timeout رشته اتصال برای حداکثر زمان open شدن یک connection است
    و
    timeout ای که شما در تاپیکتان اشاره کردید، مربوط به حداکثر زمان لازم برای اجرا شدن یک SQL در دیتابیس است.
    (((
    اصولاً فرآیند های مرتبط با دیتابیس در بستر شبکه یا حداقل بستر ارتباط بین دو برنامه متفاوت اجرا میشود.
    مانند آن است که تلفن را بردارید و شماره ای بگیرید، اگر شانس بیاورید چند لحظه منتظر میمانید و کسی گوشی را بر میدارد ولی اگر کسی آنور خط نباشد یا اگر باشد و به علت مشغله فرصت برداشتن گوشی را پیدا نکند، شما که نمیتوانید و نمیخواهید تا آخر عمرتان گوشی را دستت تان نگاه دارید و منتظر پاسخ دادن یک نفر بمانید؟؟؟!!! بحرحال یک timeout ای برای خودتان قائل هستید و اگر خیلی طول بکشد گوشی را میگذارید.

    این دقیقاً مفهوم و دلیل وجودی همین timeout ها است.
    )))

  4. #14
    پروفشنال shadmehrshadow1's Avatar
    تاريخ عضويت
    Oct 2009
    پست ها
    842

    پيش فرض

    باز هم ممنون به خاطر وقتی که میذارید و راهنمایی هایی که میکنید.

    در مورد تصویر gif هم که گفتید حرکت نمیکند، برای عدم استفاده از چند ریسمانی طبیعی است!
    یعنی با این وضع نمیشه از تصویر Gif استفاده کرد؟؟ (من هنوز کدی رو که گذاشتید رو امتحان نکردم.)

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

    مانند آن است که تلفن را بردارید و شماره ای بگیرید، اگر شانس بیاورید چند لحظه منتظر میمانید و کسی گوشی را بر میدارد ولی اگر کسی آنور خط نباشد یا اگر باشد و به علت مشغله فرصت برداشتن گوشی را پیدا نکند، شما که نمیتوانید و نمیخواهید تا آخر عمرتان گوشی را دستت تان نگاه دارید و منتظر پاسخ دادن یک نفر بمانید؟؟؟!!! بحرحال یک timeout ای برای خودتان قائل هستید و اگر خیلی طول بکشد گوشی را میگذارید.
    بله درست هستش . ولی منظور من بیشتر در این قسمت بود که در این زمان انتظار همان طور که در مثال تلفن صدای بوقی را میشنویم و میفهمیم که باید منتظر بمانیم در این رابطه هم به جای صدای بوق میشه حداقل از یک پیغام منتظر بمانید و یا یک پرئگرس بار و یا یک همچین چیزی استفاده کنیم که طرف مقابل بداند که باید صبر نماید. در مورد هر دو TimeOut منظورم هست. (میشه چنین کاری انجام داد؟ در این صورت این کار به نظرتان درست و منطقی هست؟)

    در مورد اون سوال دیگر و وجود سطر های تکراری هم ممنون میشم راهنمایی فرمایید.

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

    پيش فرض

    سلام
    یعنی با این وضع نمیشه از تصویر Gif استفاده کرد؟؟
    من هرکاری کردم نتونستم کاری کنم که این تصویر Gif به درستی حرکت کند
    بدون چند ریسمانی راه صحیح و تمیزی ندارد.
    برنامه شما بطور پیشفرض یک ریسمان دارد، یک کارمند!
    اگر این کارمند عزیز برای کار طولانی و زمان بری بفرستید و الافش کنید(!) نباید انتظار داشته باشید کس دیگری از جای دیگری بیاید و کارهای دیگر برنامه تان را انجام دهد!

    حداقل از یک پیغام منتظر بمانید ... یا یک همچین چیزی استفاده کنیم که طرف مقابل بداند که باید صبر نماید ... میشه چنین کاری انجام داد؟
    پس تا الآن داشتیم در خصوص چه چیزی صحبت میکردیم!!!
    خوب مگر همین کارها در کدهای قبلی انجام نشده؟!

    موفق باشید.

  6. #16
    پروفشنال shadmehrshadow1's Avatar
    تاريخ عضويت
    Oct 2009
    پست ها
    842

    پيش فرض

    ممنون باز هم

    در مورد پست 11 هم یه توضیحی میدید . چرا اینجور میشه؟

    میشه چندتا سوال دیگه راجب به مسادل دیگه (مربوط به اس کیو ال) رو هم در همین تاپیک ازتون بپرسم؟؟

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

    پيش فرض

    سلام
    در مورد پست 11 هم یه توضیحی میدید . چرا اینجور میشه؟
    در پست 13 تلاش کردم پاسخ سوال پست 11 تان را بدهم.
    حقیقتش الآن دقیقا منظورتان را از "چرا اینجور میشه" متوجه نمیشوم.
    بهتر است سوالات تان را شفاف تر مطرح نمایید.
    باز هم چشم!
    همانطورکه قبلا در پست 13 بیان کردم عدد timeout بیان کننده حداکثر زمانی است که کدشما(کلاینت) منتظر پاسخ از سرور خواهد ماند.
    اگر سرور زودتر جواب داد چه بهتر ولی اگر دیرتر از زمان مشخص شده طول کشید، کل عملیات لغو میشود.

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

صفحه 2 از 2 اولاول 12

Thread Information

Users Browsing this Thread

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

User Tag List

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

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