重複の可能性:クロススレッド操作が無効です:他のスレッドからのWPFアクセスGUI
で作成されたスレッド以外のスレッドからアクセスされたコントロール
良い一日、私はクラスを書きます
public class Metric1
{
public event MetricUnitEventHandler OnUnitRead;
public void ReiseEventOnUnitRead(string MetricUnitKey)
{
if (OnUnitRead!=null)
OnUnitRead(this,new MetricUnitEventArgs(MetricUnitKey));
}
.....
}
Metric1 m1 = new Metric1();
m1.OnUnitRead += new MetricUnitEventHandler(m1_OnUnitRead);
void m1_OnUnitRead(object sender, MetricUnitEventArgs e)
{
MetricUnits.Add(((Metric1)sender));
lstMetricUnit.ItemsSource = null;
lstMetricUnit.ItemsSource = MetricUnits;
}
次に、毎分m1のReiseEventOnUnitReadメソッドを呼び出す新しいスレッドを開始します。
行 lstMetricUnit.ItemsSource = null
で; 例外をスローします- 「別のスレッドがオブジェクトを所有しているため、呼び出し元のスレッドはこのオブジェクトにアクセスできません。」 なんで?