تخفیف های ویژه عیدانه توسینسو
تا 60 درصد تخفیف ویژه
00ساعت 00دقیقه 00ثانیه
صادقیان

خطای oInvoke or BeginInvoke cannot be called در سی شارپ

سلام دوستان خسته نباشید ، من در پروژه م یک Thread به شکل زیر تعریف کردم منتها وقتی از متد Invoke استفاده می کنم با پیغام زیر مواجه میشم . دوستان تا وقتی که برنامه در حال اجراست برنامه به خوبی کار میکنه ولی وقتی برنامه رو میبندم پیغام خطای زیر ظاهر میشه. ممنون میشم راهنمایی کنید .

  private void Form1_Load(object sender, EventArgs e)
        {
            ThreadStart ts = new ThreadStart(show);
            Thread td = new Thread(ts);
            td.Start();
          
        }

   private void show ()
        {
         if (number == 0)
                {
                    toggleSwitch1.Invoke(new Action(() =>
                        {
                            toggleSwitch1.IsOn = true;
                        }));
                   
                }
                else if (number == 1)
                {
                    toggleSwitch1.Invoke(new Action(() =>
                    {
                        toggleSwitch1.IsOn = false;
                    }));

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

سلام دوست عزیز، مشکل اینجا هست که Thread شما زمان بسته شدن فرم متوقف نمیشه و داخل کد Thread می خوایید به کنترل فرمی که دیگه وجود نداره دسترسی داشته باشید، راه حل اینه که قبل از بسته شدن فرم، یعنی رویداد Closing متد Abort رو برای Thread ایجاد شده فراخوانی کنید.

کانال تلگرام: https://t.me/TOSINSOAhmadi
  • انتخاب شده به عنوان جواب توسط 1 نفر
پاسخ شما
برای ارسال پاسخ خود وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×