このコードを使用して、スレッドがメイン(UI)スレッドであるかどうかを検出することを考えています。
public static bool IsMainThread()
{
return Thread.CurrentThread.GetApartmentState() == ApartmentState.STA;
}
確かに、タスクを実行しているワーカースレッドがfalseを返す場合は正常に機能しているように見えますが、一般的にはtrueかどうか疑問に思っています。
関連する場合、これはWPFアプリケーションです。
これは私の他の質問に似ています:コードがメインスレッドで実行されていることをどのように主張しますか?しかし、誰もこの解決策を提案しませんでした。