Look, you aren't ready for threading yet: you don't understand enough about the normal code.
As JSOP and I explained yesterday, this is not suitable for threading.
Your new "threaded" version is particularly bad: you cannot access GUI objects from anywhere other than the thread than created them. So, you can't add items to a ListView from your thread without invoking them. I'll give you the code, but you won't understand it!
private void AddNewString(string text)
{
if (InvokeRequired)
{
Invoke(new MethodInvoker(delegate { AddNewString(text); }));
}
else
{
myListView.Items.Add(text);
}
}