The Solution:
Delegates!
I.e:
code:
private delegate void addEventLogDelegate(String thisContact, String thisTitle, String thisArtist);
And then in the other thread (one that isnt the main):
code:
addEventLogDelegate d = new addEventLogDelegate(this.addEventLog);
Object[] oArgs = new Object[3];
oArgs[0] = myUBX.getContact();
oArgs[1] = myUBX.getSong();
oArgs[2] = myUBX.getArtist();
this.Invoke(d, oArgs);