I am still kind of new to C#, and especially threading in C#. I am trying to start a function that requires a single threaded apartment (STAThread)
But I am not able to compile the following code:
The function looks as follows in a separate class called MyClass
:
internal static string DoX(string n, string p)
{
// does some work here that requires STAThread
}
I have tried the attribute [STAThread] on top of the function but that does not work.
So I am trying to create a new Thread as follows:
Thread t = new Thread(new ThreadStart(MyClass.DoX));
but this will not compile (The best overloaded method has invalid arguments error). However the example online is very similar (example here) What am I doing wrong and how can I simply make a function run in a new STA thread?
Thanks
If you need the value, you can "capture" that back into a variable, but note that the variable won't have the value until the end of the other thread:
or perhaps simpler: