نمایش نتایج 1 تا 4 از 4

نام تاپیک: Cross Thread Operation not valid

  1. #1

    Cross Thread Operation not valid

    این کد چرا اجرا نمی شه٬ من Thread دیگه ایجاد نکردم ولی میگه cross Thread Operation no valid?

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Threading;


    namespace Test_threading
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }


    public void compt()
    {
    while (true)
    {
    listBox1.Items.Add(listBox1.Items.Count);
    }
    }


    private void button1_Click(object sender, EventArgs e)
    {
    ThreadStart Ts = new ThreadStart(compt);
    Thread Tr = new Thread(Ts);
    Tr.Start();


    }
    }
    }



  2. #2

    نقل قول: Cross Thread Operation not valid

    جوابش رو فهمیدم

    using System;using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Threading;


    namespace Test_threading
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    CheckForIllegalCrossThreadCalls = false;
    }


    public void compt()
    {
    try
    {
    while (true)
    {
    string x = listBox1.Items.Count.ToString();
    listBox1.Items.Add(x);
    }
    }
    catch (Exception e)
    {
    MessageBox.Show(e.ToString());


    }
    }


    private void button1_Click(object sender, EventArgs e)
    {
    ThreadStart Ts = new ThreadStart(compt);
    Thread Tr = new Thread(Ts);
    Tr.Start();


    }
    }
    }




    مقدار CheckForIllegalCrossThreadCalls رو باید false کنید

  3. #3
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    1,629

    نقل قول: Cross Thread Operation not valid

    سلام
    کار جالبی کردی، دوست من، این که نشد راه حل. اینطوری فقط مشکل رو دور زدی و کاری که باید هم انجام نمی‌شه.
    شما یک Thread اصلی داری، یه Thread دیگه هم ایجاد کردی، این می‌شه دو تا.
    حالا می‌خوای از Thread داخلی به یه کنترل که تو Thread اصلی هست دسترسی پیدا کنی.
    این باعث بروز خطا می‌شه، برای این که برنامه‌ات کار کنه باید تو متد Compt یه تغییراتی بدی.
    چون مدت زیادی هست که WinForm کار نکردم ممکنه دقیق نباشه، اما روش اینه:

    delegate void VoidDelegate();

    این خط رو بالای کلاست قرار می‌دی.
    و تابع compt رو اینطوری نویسی:



    private void Compt() {
    if ( listBox1.InvokeRequired ) {
    listBox1.Invoke( (VoidDelegate)Compt );
    return;
    }
    // do your functions
    }



    صبا صبوحی

  4. #4

    نقل قول: Cross Thread Operation not valid

    نقل قول نوشته شده توسط SabaSabouhi مشاهده تاپیک
    سلام
    کار جالبی کردی، دوست من، این که نشد راه حل. اینطوری فقط مشکل رو دور زدی و کاری که باید هم انجام نمی‌شه.
    شما یک Thread اصلی داری، یه Thread دیگه هم ایجاد کردی، این می‌شه دو تا.
    حالا می‌خوای از Thread داخلی به یه کنترل که تو Thread اصلی هست دسترسی پیدا کنی.
    این باعث بروز خطا می‌شه، برای این که برنامه‌ات کار کنه باید تو متد Compt یه تغییراتی بدی.
    چون مدت زیادی هست که WinForm کار نکردم ممکنه دقیق نباشه، اما روش اینه:

    delegate void VoidDelegate();

    این خط رو بالای کلاست قرار می‌دی.
    و تابع compt رو اینطوری نویسی:



    private void Compt() {
    if ( listBox1.InvokeRequired ) {
    listBox1.Invoke( (VoidDelegate)Compt );
    return;
    }
    // do your functions
    }



    صبا صبوحی

    مرسی جالب بود

تاپیک های مشابه

  1. چرا ارور Cross-thread operation not valid رخ نمیده
    نوشته شده توسط bade saba در بخش C#‎‎
    پاسخ: 11
    آخرین پست: جمعه 02 تیر 1391, 20:24 عصر
  2. Cross-thread operation not valid در ايجاد event
    نوشته شده توسط reza_mostafavi63 در بخش C#‎‎
    پاسخ: 5
    آخرین پست: شنبه 17 اردیبهشت 1390, 19:54 عصر
  3. سوال: Cross-thread operation not valid error
    نوشته شده توسط mehdi_csharp در بخش C#‎‎
    پاسخ: 2
    آخرین پست: سه شنبه 12 بهمن 1389, 20:24 عصر
  4. Specified cast is not valid
    نوشته شده توسط faramarz_s در بخش ASP.NET Web Forms
    پاسخ: 7
    آخرین پست: شنبه 29 شهریور 1382, 20:57 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •