私はC#.netの初心者です。ユーザースレッドからリストボックスにアクセスする単純なアプリがwpfにあります。winformsではinvokerequiredを使用できますが、ディスパッチャーを使用したwpfと同等のものは役に立ちませんでした。私のシステムもボタンのためにハングしているので、デバッグは可能です。以下のコードの解決策を提供してください。前もって感謝します
private void Monitor_mtd()
{
while (AppStatus != 0)
{
if (flag2 == 1)
{
listBox1.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
new list1MtdDelegate(list1Mtd), "Best practice");
}
}
}
private delegate void list1MtdDelegate(string ls1);
private void list1Mtd(string ls1)
{
listBox1.Items.Add(ls1);
}
private void button1_Click_1(object sender, RoutedEventArgs e)
{
Monitor = new Thread(new ThreadStart(Monitor_mtd));
Monitor.Start();
flag1 = 1;
}
private void button2_Click(object sender, RoutedEventArgs e)
{
flag2 = 1;
}