Terrii Terrii - 1 month ago 10
C# Question

Cross-thread operation not valid in Windows Forms

Could anyone help me i have a problem I'm trying to get this code to work in the background via threadpool but i cannot seem to get it to work i keep getting this error:

Cross-thread operation not valid: Control 'ListBox3' accessed
from a thread other than the thread it was created on.


Here is the code i am using:

private void DoWork(object o)
{
var list = ListBox3;

var request = createRequest(TxtServer.Text, WebRequestMethods.Ftp.ListDirectory);

using (var response = (FtpWebResponse)request.GetResponse())
{
using (var stream = response.GetResponseStream())
{
using (var reader = new StreamReader(stream, true))
{
while (!reader.EndOfStream)
{
list.Items.Add(reader.ReadLine());
ResultLabel.Text = "Connected";
}
}
}
}
}

jac jac
Answer

You need to invoke a delegate to update the list. See this MSDN example.