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

نام تاپیک: مشکل در تغییر مقدار یک کنترل در متدی که به ترد نسبت داده شده

  1. #1
    کاربر دائمی آواتار wolf_majid
    تاریخ عضویت
    آذر 1387
    محل زندگی
    اصفهان
    پست
    534

    مشکل در تغییر مقدار یک کنترل در متدی که به ترد نسبت داده شده

    سلام
    کد زیر رو دقیقا" از روی کتاب نوشتم
     public partial class frmServer : Form
    {
    public frmServer()
    {
    InitializeComponent();
    readThread = new Thread(new ThreadStart(RunServer));
    readThread.Start();
    }

    private Socket connection;
    private Thread readThread;
    private NetworkStream socketStream;
    private BinaryWriter writer;
    private BinaryReader reader;

    public void RunServer()
    {
    TcpListener listener;
    int counter = 1;

    try
    {
    listener = new TcpListener(5000);
    listener.Start();

    while (true)
    {
    displayTextBox.Text = "waiting for connection\r\n";
    connection = listener.AcceptSocket();
    socketStream = new NetworkStream(connection);

    writer = new BinaryWriter(socketStream);
    reader = new BinaryReader(socketStream);

    displayTextBox.Text += "Connection " + counter + " received.\r\n";
    writer.Write("SERVER>>> Connection Succeful");
    inputTextBox.ReadOnly = false;
    string theReply = "";

    do
    {
    try
    {
    theReply = reader.ReadString();
    displayTextBox.Text += "\r\n" + theReply;
    }
    catch (Exception)
    {
    break;
    }

    } while (theReply.ToLower() != "client>>> terminate" &&
    connection.Connected);

    displayTextBox.Text += "\r\nUser Terminated Connection";

    inputTextBox.ReadOnly = true;
    writer.Close();
    reader.Close();
    socketStream.Close();
    connection.Close();

    ++counter;

    }
    }
    catch (Exception error)
    {
    MessageBox.Show(error.ToString());
    }
    }

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
    Environment.Exit(Environment.ExitCode);
    }



    private void inputTextBox_KeyDown(object sender, KeyEventArgs e)
    {
    try
    {
    if (e.KeyCode == Keys.Enter && connection != null)
    {
    writer.Write("SERVER>>> " + inputTextBox.Text);
    displayTextBox.Text += "\r\nSERVER>>> " + inputTextBox.Text;

    if (inputTextBox.Text.ToLower() == "terminate")
    connection.Close();

    inputTextBox.Clear();
    }
    }
    catch (SocketException)
    {

    displayTextBox.Text += "\nError Writing Object";
    }
    }
    }


    ولی موقع اجرا خطای فایل پیوست شده رو میده
    نکته جالب اینجاست که موقعی که برنامه را با F11 اجرا میکنم مشکلی نداره ولی اجرا در حالت عادی خطا میده
    عکس های ضمیمه عکس های ضمیمه

  2. #2
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313

    نقل قول: مشکل در تغییر مقدار یک کنترل در متدی که به ترد نسبت داده شده

    خطای کراس تردینگ برای این اتفاق افتاده که شما در تردی که برای runserver ساختی سعی در دسترسی به textbox داری که در ترد اصلی برنامه ساخته شده
    اینجا را مطالعه کنید
    http://www.codeproject.com/Articles/...InvokeRequired

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

  1. مشکل در تغییر ای دی کنترل های asp در زمان اجرا
    نوشته شده توسط razi_a در بخش ASP.NET Web Forms
    پاسخ: 10
    آخرین پست: چهارشنبه 24 آبان 1391, 09:58 صبح
  2. سوال: مشکل با تغییر رنگ یک کنترل با جاوا اسکریپت
    نوشته شده توسط dontspeak در بخش JavaScript و Framework های مبتنی بر آن
    پاسخ: 2
    آخرین پست: جمعه 16 تیر 1391, 20:05 عصر
  3. پاسخ: 2
    آخرین پست: یک شنبه 23 مرداد 1390, 08:55 صبح
  4. سوال: مشکل در تغییر Foreground اکثر کنترل ها
    نوشته شده توسط PetekDincos در بخش WPF
    پاسخ: 1
    آخرین پست: چهارشنبه 25 خرداد 1390, 11:29 صبح
  5. مشکل در تغییر مقدار آرایه
    نوشته شده توسط mahdi68 در بخش C#‎‎
    پاسخ: 3
    آخرین پست: شنبه 20 آذر 1389, 21:05 عصر

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

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