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());
난 여전히 오류가있어 "시각 지정은 이미 다른 시각 또는 CompositionTarget의 루트의 자식입니다." 내가해야 할 일?
이것은 스레딩과 관련이 없습니다. 컨트롤이 이미 다른 컨테이너에 추가되었을 때 컨트롤을 캔버스에 추가하려고합니다. WPF의 시각적 컨트롤에는 둘 이상의 부모가있을 수 없습니다. – Abion47
이것은 비주얼이 이미 CanvasX에있을 때 두 번째 루프의 _while (true) _ 부분 때문에 발생합니다. – Ron
죄송합니다. 다시 읽으십시오. 스레드 추가를 잊어 버렸습니다. –