これまでのところ、X ボタンがクリックされたときにこのコードを実行しましたが、これが終了時にフォームのスレッドを終了する正しい方法であるかどうかはわかりません。
Type t = this.GetType();
foreach (PropertyInfo pi in t.GetProperties())
{
if (pi.GetType() == typeof(Thread))
{
MethodInfo mi = pi.GetType().GetMethod("Abort");
mi.Invoke(null, new object[] {});
}
}
「使用中の RCW を解放しようとしました。RCW はアクティブなスレッドまたは別のスレッドで使用されています。使用中の RCW を解放しようとすると、破損やデータ損失が発生する可能性があります。」