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

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




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 12

نام تاپيک: گذاشتن پیغام Waiting در هنگام ارسال ایمیل در سی شارپ

  1. #1
    داره خودمونی میشه
    تاريخ عضويت
    Feb 2013
    محل سكونت
    کرمان
    پست ها
    43

    14 گذاشتن پیغام Waiting در هنگام ارسال ایمیل در سی شارپ

    سلام بر همه
    من اومدم در برنامه ام گزینه ارسال ایمیل رو قرار دادم . و میخام برنامه زمانی که درحال ارسال ایمیل است یه پیغام به کاربر نشون بده مثلا "در حال ارسال ایمیل..." .
    گزینه انتخابی خودم تردها بودن که استفاده کردم ولی چون زیاد کار با تردها رو بلد نبودم خطایی رو که داد نتونستم برطرفش کنم.( البته با Wpf هم کار میکنم).
    شما دوستان چه راهی رو پیشنهاد میدین.
    منتظر پیشنهادهاتون هستم...
    ممنون

  2. #2
    داره خودمونی میشه
    تاريخ عضويت
    Feb 2013
    محل سكونت
    کرمان
    پست ها
    43

    پيش فرض

    دوستان چرا کسی هیچی نمیگه؟؟!!!

  3. #3
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    برای این کار می توانید از یک Backgroundworker استفاده کنید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در ابتدا یک BackgtoundWorker ایجاد می شود و رویداد انجام دادن و پایان کار بدان متصل می شود. حالا با اجرای bgk عمل شما انجام می شود و در انتها نیز با اجرای Complete عمل پایان می یابد.

    موفق باشید.

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


  5. #4
    داره خودمونی میشه
    تاريخ عضويت
    Feb 2013
    محل سكونت
    کرمان
    پست ها
    43

    پيش فرض

    سلام دوست عزیز بسیار سپاسگذارم بابت پاسختون. من از کدهای نوشته شده تان در برنامه ام استفاه کردم و همون خطایی رو میده که وقتی از تردها استفاده کرده بودم میداد.
    خطاش اینه:
    The Calling Thread Cann't access this object because a diffrent thread owns it.
    یه درخاست دیگه هم دارم
    امکانش هست که این خط کد رو توضیح بدین:

    button1.Dispatcher.Invoke(new Action(() => { button1.IsEnabled = false; button1.Content = "Sending"; }), null);

  6. #5
    در آغاز فعالیت
    تاريخ عضويت
    Dec 2010
    پست ها
    13

    پيش فرض

    من هم مثل دوست قبلی این
    BackgtoundWorker رو پیشنهاد میدم با یسری تغییرات کوچک.

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by behzaf; 06-10-2013 at 13:48.

  7. #6
    در آغاز فعالیت
    تاريخ عضويت
    Dec 2010
    پست ها
    13

    پيش فرض

    سلام دوست عزیز بسیار سپاسگذارم بابت پاسختون. من از کدهای نوشته شده تان در برنامه ام استفاه کردم و همون خطایی رو میده که وقتی از تردها استفاده کرده بودم میداد.
    خطاش اینه:
    The Calling Thread Cann't access this object because a diffrent thread owns it.
    یه درخاست دیگه هم دارم
    امکانش هست که این خط کد رو توضیح بدین:

    button1.Dispatcher.Invoke(new Action(() => { button1.IsEnabled = false; button1.Content = "Sending"; }), null);
    اول توضیح در مورد کد بالا : Dispatcher در واقع یک queue از کارهایی هست که روی ترد مبوطه باید اجرا شوند. button1.Dispatcher به تردی اشاره میکنه که button1 توش تعریف شده. دستور بالا یک اکشن جدید رو به لیست دستورات برای اجرا اضاغه مبکنه.
    () => { button1.IsEnabled = false; button1.Content = "Sending"; } یه lambada expression هست که در بالا به عنوان اکشن به کار رفته. هرگونه تغییر توی کنترل هاب WPF باید در تردی انجام دشه که اون کنترل ها ساخته شدند. در غیر این صورت شما همون خطایی که گفتی رو می گیری.

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


  9. #7
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    نه تنها در WPF بلکه در ویندوز فرم هم این قضیه وجود دارد. هر Thread یک حافظه ی private دارد. که دسترسی به آن فقط از طریق همان Thread امکان پذیر خواهد بود. عناصر روی فرم و یا مورد استفاده در ویندو ها جز عناصر اختصاصی هر Thread هستند لذا دستری به این عناصر می بایست از طریق همان Thread باشد پس یک Invoke این امر امکان پذیر می شود.


    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    موفق باشید.

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


  11. #8
    داره خودمونی میشه
    تاريخ عضويت
    Feb 2013
    محل سكونت
    کرمان
    پست ها
    43

    پيش فرض

    سلام بر دوستان.
    همچنان خطا پا برجاست . نمیدونم ترد از کدام ابجکت میخاد استفاده کنه که نمیتونه و در ترد دیگه داره استفاده میشه!
    میشه یه نگاهی به کدهایی که نوشتم بندازین و بگین مشکل از کجاست.
    یه توضیح بدم که با زدن دکمه Ok اول اطلاعات مربوطه رو در دیتا بیس ذخیره میکنه و بعد اقدام به ارسال ایمیل میکنه

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    یه مورد دیگه رو هم اضافه کنم که در کدهایی که در بالا برام گذاشتین جمله sending email... روی دکمه نشون داده میشه حالا اگه بخام در یه کادر جداگانه این پیغام رو نشون بده باید چه کار کنم؟1
    خیلی خیلی ممنونم...

  12. #9
    در آغاز فعالیت
    تاريخ عضويت
    Dec 2010
    پست ها
    13

    پيش فرض

    این کد در کلاسی که ویندو رو ساختی هست دیگه؟ دقیقا کدوم لاین ارور میده.
    برای نشون دادن پیغام مربوط به ارسال میتونی از [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] استفاده کنی.

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


  14. #10
    داره خودمونی میشه
    تاريخ عضويت
    Feb 2013
    محل سكونت
    کرمان
    پست ها
    43

    پيش فرض

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

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

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

User Tag List

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

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