sds1920
یک شنبه 24 بهمن 1389, 13:07 عصر
سلام خدمت همه ی دوستان.
من یک کلاس نوشتم.توی این کلاس یک thread و یک event دارم.این event رو از داخل thread فرخوانی می کنم به صورت زیر :
public void Connect()
{
this.IsConnected = true;
this.thrReceive = new System.Threading.Thread(this.ReceivedData);
this.thrReceive.Start();
}
private void ReceivedData()
{
while(this.IsConnected)
{
byte[] buff = new byte[this.BufferSize];
this.mainSocket.Receive(buff);
this.Message = this.DecodeMessage(buff);
if (this.ReceivedMessage != null)
this.ReceivedMessage(this, new MessageEventArgs(this.Message));
}
}
بعد توی برنامه event رو مثل زیر ایجاد می کنم
void Client_ReceivedMessage(object sender, EventArgs e)
{
txtLog.AppendText("recieved Message");
}
مشکل من همینجاست.یعنی زمانی که ReceivedMessage فراخوانی می شه و می خواد متن رو به textBox اضافه کنه خطای زیر رو می ده :
Cross-thread operation not valid: Control 'txtLog' accessed from a thread other than the thread it was created on.
از دوستان کسی می دونه این خطا مال چیه و باید چکارش بکنم؟
ممنون.
من یک کلاس نوشتم.توی این کلاس یک thread و یک event دارم.این event رو از داخل thread فرخوانی می کنم به صورت زیر :
public void Connect()
{
this.IsConnected = true;
this.thrReceive = new System.Threading.Thread(this.ReceivedData);
this.thrReceive.Start();
}
private void ReceivedData()
{
while(this.IsConnected)
{
byte[] buff = new byte[this.BufferSize];
this.mainSocket.Receive(buff);
this.Message = this.DecodeMessage(buff);
if (this.ReceivedMessage != null)
this.ReceivedMessage(this, new MessageEventArgs(this.Message));
}
}
بعد توی برنامه event رو مثل زیر ایجاد می کنم
void Client_ReceivedMessage(object sender, EventArgs e)
{
txtLog.AppendText("recieved Message");
}
مشکل من همینجاست.یعنی زمانی که ReceivedMessage فراخوانی می شه و می خواد متن رو به textBox اضافه کنه خطای زیر رو می ده :
Cross-thread operation not valid: Control 'txtLog' accessed from a thread other than the thread it was created on.
از دوستان کسی می دونه این خطا مال چیه و باید چکارش بکنم؟
ممنون.