私はまだC#、特にC#でのスレッド化に少し慣れていません。シングルスレッドアパートメント(STAThread)を必要とする関数を開始しようとしています
しかし、次のコードをコンパイルすることはできません。
関数は、次のように呼ばれる別のクラスで次のようになりますMyClass
。
internal static string DoX(string n, string p)
{
// does some work here that requires STAThread
}
関数の上に属性[STAThread]を試しましたが、機能しません。
だから私は次のように新しいスレッドを作成しようとしています:
Thread t = new Thread(new ThreadStart(MyClass.DoX));
しかし、これはコンパイルされません(最適なオーバーロードされたメソッドには無効な引数エラーがあります)。ただし、オンラインの例は非常に似ています(ここの例)。 何が間違っているのでしょうか。また、新しいSTAスレッドで関数を実行するにはどうすればよいですか。
ありがとう