mycode:別のスレッドで子どもを削除するにはどうすればよいですか?
Canvas myCanvas = new Canvas();
> Rectangle myRectangle = new Rectangle();
> Task.Factory.StartNew(() =>
> {
> while(true)
> {
> myCanvas.Children.Clear();
> //do something
> for(int i=1;i<=100;i++)
> {
> myCanvas.Children.Add(myRectangle[i]);
> }
}
> }).ContinueWith(t =>
> {
>
> }, System.Threading.CancellationToken.None, TaskContinuationOptions.None,
> TaskScheduler.FromCurrentSynchronizationContext());
私はまだエラーを得た:「ビジュアル指定は、すでに別のVisualの子やCompositionTargetのルートです。」私は何をすべきか?
これはスレッディングとは関係ありません。コントロールが既に別のコンテナに追加されているときに、キャンバスにコントロールを追加しようとしています。 WPFのビジュアルコントロールは、複数の親を持つことはできません。 – Abion47
これはビジュアルがすでにCanvasXに入っているときに、2番目のループの_while(真)_部分のために発生します。 – Ron
申し訳ありませんが再度お読みください。私はスレッドを追加するのを忘れました。 –