다음과 같이 내가하는 방법이있는 경우 디스패처 BeginInvoke
이 Dispatcher.BeginInvoke
에 대한 질문 :private void DoSomeWork()
{
MyCanvas.Dispatcher.BeginInvoke(DispatcherPriority.Background, new DispatcherOperationCallback(delegate
{
//Do something
return null;
}), null);
}
를 내가 방법을 여러 번 호출 한 후 여러 호출이 그들이 생성 된 순서대로 실행됩니다 docs : 동일한 DispatcherPriority에서 여러 BeginInvoke 호출이 수행되면 호출이 이루어진 순서대로 호출이 실행됩니다.Dispatcher.BeginInvoke Method MSDN
다른 통화가 중지되거나 대기열을 단일 통화로 재설정하려면 어떻게해야합니까?
당신은 ...하지 않습니다. 적어도 개념적으로는 (실제로는 방법이 있습니다). 당신이 원한다면'BeginInvoke'보다는'Invoke'를 사용해야 할 것입니다. 그래서 당신은 당신이 그것에 도착했을 때 각 작업을 실행할 필요가 있는지 알 것입니다. – Servy
여러 대기열이 발송자에 추가된다는 것을 알고 있다면 처음에는 여러 번 호출해서는 안됩니다. 메소드가 호출되면 일부 변수 또는 무언가를 설정하고이를 기반으로 디스패처에 새 항목을 대기열에 넣지 않습니다. –
대기열 항목을 Dispatcher에 대기시킨 다음 대기열에있는 항목을 수행하는 것을 중지하는 이유는 무엇입니까? – Maxim