以下に、現在のスレッドが UI スレッドであることを確認 するアサーション メソッドEnsure.CurrentlyOnUiThread()を記述しました。
- これは、Winforms UI スレッドを検出する際に信頼できますか?
- 私たちのアプリは WPF と Winforms が混在していますが、有効な WPF UI スレッドを検出するにはどうすればよいですか?
- これを行うより良い方法はありますか?おそらくコード契約?
保証.cs
using System.Diagnostics;
using System.Windows.Forms;
public static class Ensure
{
[Conditional("DEBUG")]
public static void CurrentlyOnUiThread()
{
if (!Application.MessageLoop)
{
throw new ThreadStateException("Assertion failed: not on the UI thread");
}
}
}