Dispatcher.BeginInvoke 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
Dispatcher가 연결된 스레드에서 대리자를 비동기적으로 실행합니다.
오버로드
BeginInvoke(Delegate, Object[]) |
Dispatcher가 만들어진 스레드에서 지정된 인수를 사용하여 지정된 대리자를 비동기적으로 실행합니다. |
BeginInvoke(DispatcherPriority, Delegate) |
Dispatcher가 연결된 스레드에서 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다. |
BeginInvoke(Delegate, DispatcherPriority, Object[]) |
Dispatcher가 만들어진 스레드에서 지정된 우선 순위에 지정된 인수를 사용하여 지정된 대리자를 비동기적으로 실행합니다. |
BeginInvoke(DispatcherPriority, Delegate, Object) |
Dispatcher가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다. |
BeginInvoke(DispatcherPriority, Delegate, Object, Object[]) |
Dispatcher가 연결된 스레드에서 지정된 인수 배열을 사용하여 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다. |
설명
WPF에서 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 주 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 생성된 콘텐츠를 Button 업데이트할 수 없습니다. 백그라운드 스레드가 Content 속성에 Button액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 작업에 작업을 Dispatcher 위임해야 합니다. 이 작업은 둘 중 하나 Invoke 또는 BeginInvoke을 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기적입니다. 작업은 지정된 위치에서의 이벤트 큐에 Dispatcher 추가됩니다 DispatcherPriority.
BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출된 후 호출 개체로 즉시 반환됩니다.
BeginInvoke 는 DispatcherOperation 대리자가 이벤트 큐에 있을 때 대리자를 조작하는 데 사용할 수 있는 개체를 반환합니다.
반환된 BeginInvoke 개체는 DispatcherOperation 다음과 같이 지정된 대리자를 조작하는 여러 가지 방법으로 사용할 수 있습니다.
이벤트 큐에서 DispatcherPriority 실행 보류 중인 대리자의 변경
이벤트 큐에서 대리자를 제거합니다.
대리자가 돌아올 때까지 기다립니다.
대리자가 실행된 후 반환하는 값을 가져옵니다.
여러 BeginInvoke 호출이 동일한 DispatcherPriority경우 호출이 이루어진 순서대로 실행됩니다.
종료된 Dispatcher 상태에서 호출되는 경우 BeginInvoke 반환 DispatcherOperation 된 상태 속성은 .로 Aborted설정됩니다.
BeginInvoke(Delegate, Object[])
Dispatcher가 만들어진 스레드에서 지정된 인수를 사용하여 지정된 대리자를 비동기적으로 실행합니다.
public:
System::Windows::Threading::DispatcherOperation ^ BeginInvoke(Delegate ^ method, ... cli::array <System::Object ^> ^ args);
public System.Windows.Threading.DispatcherOperation BeginInvoke (Delegate method, params object[] args);
member this.BeginInvoke : Delegate * obj[] -> System.Windows.Threading.DispatcherOperation
Public Function BeginInvoke (method As Delegate, ParamArray args As Object()) As DispatcherOperation
매개 변수
- method
- Delegate
args
에 지정된 매개 변수를 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.
- args
- Object[]
주어진 메서드에 인수로 전달하는 개체의 배열입니다. null
일 수 있습니다.
반환
BeginInvoke가 호출된 후 즉시 반환되며, 이벤트 큐에서 실행 보류 중일 때 대리자와 상호 작용하는 데 사용할 수 있는 개체입니다.
설명
반환된 BeginInvoke 개체는 DispatcherOperation 다음과 같이 지정된 대리자를 조작하는 여러 가지 방법으로 사용할 수 있습니다.
이벤트 큐에서 DispatcherPriority 실행 보류 중인 대리자의 변경
이벤트 큐에서 대리자를 제거합니다.
대리자가 돌아올 때까지 기다립니다.
대리자가 실행된 후 반환하는 값을 가져옵니다.
BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출된 후 호출 개체로 즉시 반환됩니다.
WPF에서 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 주 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 생성된 콘텐츠를 Button 업데이트할 수 없습니다. 백그라운드 스레드가 Content 속성에 Button액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 작업에 작업을 Dispatcher 위임해야 합니다. 이 작업은 둘 중 하나 Invoke 또는 BeginInvoke을 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기적입니다. 작업은 지정된 위치에서의 이벤트 큐에 Dispatcher 추가됩니다 DispatcherPriority.
종료된 Dispatcher 상태에서 호출되는 경우 BeginInvoke 반환 DispatcherOperation 된 상태 속성은 .로 Aborted설정됩니다.
적용 대상
BeginInvoke(DispatcherPriority, Delegate)
Dispatcher가 연결된 스레드에서 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.
public:
System::Windows::Threading::DispatcherOperation ^ BeginInvoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public System.Windows.Threading.DispatcherOperation BeginInvoke (System.Windows.Threading.DispatcherPriority priority, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.BeginInvoke : System.Windows.Threading.DispatcherPriority * Delegate -> System.Windows.Threading.DispatcherOperation
Public Function BeginInvoke (priority As DispatcherPriority, method As Delegate) As DispatcherOperation
매개 변수
- priority
- DispatcherPriority
지정된 메서드가 호출되는 이벤트 큐의 Dispatcher 다른 보류 중인 작업에 상대적인 우선 순위입니다.
- method
- Delegate
인수가 없는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.
반환
BeginInvoke가 호출된 후 즉시 반환되며, 이벤트 큐에서 실행 보류 중일 때 대리자와 상호 작용하는 데 사용할 수 있는 개체입니다.
- 특성
예외
method
이(가) null
인 경우
priority
은 유효한 DispatcherPriority이 아닙니다.
예제
다음 예제에서는 작업을 .에 Dispatcher배치하는 방법을 보여줍니다. 이 예제의 전체 소스 코드를 보려면 장기 실행 계산 샘플을 사용 하 여 단일 스레드 애플리케이션합니다.
먼저 인수를 허용하지 않는 대리자가 만들어집니다.
public delegate void NextPrimeDelegate();
Public Delegate Sub NextPrimeDelegate()
다음으로 호출 BeginInvoke(DispatcherPriority, Delegate) 됩니다. 모든 DispatcherObject 항목에는 연결된 속성을 반환 Dispatcher 하는 속성이 있으므로 원하는 Dispatcher 속성은 이 경우 Button 명명startStopButton
된 속성을 쿼리하여 DispatcherObject가져옵니다. 호출 BeginInvoke(DispatcherPriority, Delegate) 은 두 개의 매개 변수를 사용합니다. 즉, 우선 순위로 설정된 DispatcherPriority.Normal우선 순위와 대리자의 NextPrimeDelegate
인스턴스를 통해 전달되는 콜백입니다.
startStopButton.Dispatcher.BeginInvoke(
DispatcherPriority.Normal,
new NextPrimeDelegate(CheckNextNumber));
startStopButton.Dispatcher.BeginInvoke(DispatcherPriority.Normal, New NextPrimeDelegate(AddressOf CheckNextNumber))
설명
여러 BeginInvoke 호출이 동일한 DispatcherPriority경우 호출이 이루어진 순서대로 실행됩니다.
BeginInvoke 는 DispatcherOperation 대리자가 이벤트 큐에 있을 때 대리자를 조작하는 데 사용할 수 있는 개체를 반환합니다.
반환된 BeginInvoke 개체는 DispatcherOperation 다음과 같이 지정된 대리자를 조작하는 여러 가지 방법으로 사용할 수 있습니다.
이벤트 큐에서 DispatcherPriority 실행 보류 중인 대리자의 변경
이벤트 큐에서 대리자를 제거합니다.
대리자가 돌아올 때까지 기다립니다.
대리자가 실행된 후 반환하는 값을 가져옵니다.
BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출된 후 호출 개체로 즉시 반환됩니다.
WPF에서 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 주 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 생성된 콘텐츠를 Button 업데이트할 수 없습니다. 백그라운드 스레드가 Content 속성에 Button액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 작업에 작업을 Dispatcher 위임해야 합니다. 이 작업은 둘 중 하나 Invoke 또는 BeginInvoke을 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기적입니다. 작업은 지정된 위치에서의 이벤트 큐에 Dispatcher 추가됩니다 DispatcherPriority.
종료된 Dispatcher 상태에서 호출되는 경우 BeginInvoke 반환 DispatcherOperation 된 상태 속성은 .로 Aborted설정됩니다.
추가 정보
적용 대상
BeginInvoke(Delegate, DispatcherPriority, Object[])
Dispatcher가 만들어진 스레드에서 지정된 우선 순위에 지정된 인수를 사용하여 지정된 대리자를 비동기적으로 실행합니다.
public:
System::Windows::Threading::DispatcherOperation ^ BeginInvoke(Delegate ^ method, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public System.Windows.Threading.DispatcherOperation BeginInvoke (Delegate method, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.BeginInvoke : Delegate * System.Windows.Threading.DispatcherPriority * obj[] -> System.Windows.Threading.DispatcherOperation
Public Function BeginInvoke (method As Delegate, priority As DispatcherPriority, ParamArray args As Object()) As DispatcherOperation
매개 변수
- method
- Delegate
args
에 지정된 매개 변수를 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.
- priority
- DispatcherPriority
지정된 메서드가 호출되는 이벤트 큐의 Dispatcher 다른 보류 중인 작업에 상대적인 우선 순위입니다.
- args
- Object[]
주어진 메서드에 인수로 전달하는 개체의 배열입니다. null
일 수 있습니다.
반환
BeginInvoke가 호출된 후 즉시 반환되며, 이벤트 큐에서 실행 보류 중일 때 대리자와 상호 작용하는 데 사용할 수 있는 개체입니다.
설명
반환된 BeginInvoke 개체는 DispatcherOperation 다음과 같이 지정된 대리자를 조작하는 여러 가지 방법으로 사용할 수 있습니다.
이벤트 큐에서 DispatcherPriority 실행 보류 중인 대리자의 변경
이벤트 큐에서 대리자를 제거합니다.
대리자가 돌아올 때까지 기다립니다.
대리자가 실행된 후 반환하는 값을 가져옵니다.
BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출된 후 호출 개체로 즉시 반환됩니다.
WPF에서 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 주 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 생성된 콘텐츠를 Button 업데이트할 수 없습니다. 백그라운드 스레드가 Content 속성에 Button액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 작업에 작업을 Dispatcher 위임해야 합니다. 이 작업은 둘 중 하나 Invoke 또는 BeginInvoke을 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기적입니다. 작업은 지정된 위치에서의 이벤트 큐에 Dispatcher 추가됩니다 DispatcherPriority.
종료된 Dispatcher 상태에서 호출되는 경우 BeginInvoke 반환 DispatcherOperation 된 상태 속성은 .로 Aborted설정됩니다.
적용 대상
BeginInvoke(DispatcherPriority, Delegate, Object)
Dispatcher가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.
public:
System::Windows::Threading::DispatcherOperation ^ BeginInvoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public System.Windows.Threading.DispatcherOperation BeginInvoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.BeginInvoke : System.Windows.Threading.DispatcherPriority * Delegate * obj -> System.Windows.Threading.DispatcherOperation
Public Function BeginInvoke (priority As DispatcherPriority, method As Delegate, arg As Object) As DispatcherOperation
매개 변수
- priority
- DispatcherPriority
지정된 메서드가 호출되는 이벤트 큐의 Dispatcher 다른 보류 중인 작업에 상대적인 우선 순위입니다.
- method
- Delegate
인수를 하나 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.
- arg
- Object
지정된 메서드에 인수로 전달하는 개체입니다.
반환
BeginInvoke가 호출된 후 즉시 반환되며, 이벤트 큐에서 실행 보류 중일 때 대리자와 상호 작용하는 데 사용할 수 있는 개체입니다.
- 특성
예외
method
이(가) null
인 경우
priority
은 유효한 DispatcherPriority이 아닙니다.
예제
다음 예제에서는 작업을 .에 Dispatcher배치하는 방법을 보여줍니다.
먼저 하나의 인수(이 경우 문자열)를 허용하는 대리자가 만들어집니다.
private delegate void OneArgDelegate(String arg);
Private Delegate Sub OneArgDelegate(ByVal arg As String)
다음으로 호출 BeginInvoke(DispatcherPriority, Delegate, Object) 됩니다. 모든 DispatcherObject 항목에는 연결된 속성을 반환 Dispatcher 하는 속성이 있으므로 원하는 Dispatcher 속성은 이 경우 Grid 명명tomorrowsWeather
된 속성을 쿼리하여 DispatcherObject가져옵니다. 호출 BeginInvoke(DispatcherPriority, Delegate, Object) 은 세 가지 매개 변수를 사용합니다. 우선 순위는 DispatcherPriority.Normal대리자의 OneArgDelegate
인스턴스를 통해 전달되는 콜백, 콜백에 대한 인수인 명명 weather
된 문자열입니다.
// Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(
System.Windows.Threading.DispatcherPriority.Normal,
new OneArgDelegate(UpdateUserInterface),
weather);
' Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, New OneArgDelegate(AddressOf UpdateUserInterface), weather)
설명
arg``null
는 인수가 필요하지 않은 경우일 수 있습니다.
BeginInvoke 는 DispatcherOperation 대리자가 이벤트 큐에 있을 때 대리자를 조작하는 데 사용할 수 있는 개체를 반환합니다.
반환된 BeginInvoke 개체는 DispatcherOperation 다음과 같이 지정된 대리자를 조작하는 여러 가지 방법으로 사용할 수 있습니다.
이벤트 큐에서 DispatcherPriority 실행 보류 중인 대리자의 변경
이벤트 큐에서 대리자를 제거합니다.
대리자가 돌아올 때까지 기다립니다.
대리자가 실행된 후 반환하는 값을 가져옵니다.
BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출된 후 호출 개체로 즉시 반환됩니다.
WPF에서 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 주 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 생성된 콘텐츠를 Button 업데이트할 수 없습니다. 백그라운드 스레드가 콘텐츠 속성 Button에 액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 작업에 작업을 Dispatcher 위임해야 합니다. 이 작업은 둘 중 하나 Invoke 또는 BeginInvoke을 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기적입니다. 작업은 지정된 위치에서의 이벤트 큐에 Dispatcher 추가됩니다 DispatcherPriority.
여러 BeginInvoke 호출이 동일한 DispatcherPriority경우 호출이 이루어진 순서대로 실행됩니다.
종료된 Dispatcher 상태에서 호출되는 경우 BeginInvoke 반환 DispatcherOperation 된 상태 속성은 .로 Aborted설정됩니다.
추가 정보
적용 대상
BeginInvoke(DispatcherPriority, Delegate, Object, Object[])
Dispatcher가 연결된 스레드에서 지정된 인수 배열을 사용하여 지정된 우선 순위에 있는 지정된 대리자를 비동기적으로 실행합니다.
public:
System::Windows::Threading::DispatcherOperation ^ BeginInvoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public System.Windows.Threading.DispatcherOperation BeginInvoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.BeginInvoke : System.Windows.Threading.DispatcherPriority * Delegate * obj * obj[] -> System.Windows.Threading.DispatcherOperation
Public Function BeginInvoke (priority As DispatcherPriority, method As Delegate, arg As Object, ParamArray args As Object()) As DispatcherOperation
매개 변수
- priority
- DispatcherPriority
지정된 메서드가 호출되는 이벤트 큐의 Dispatcher 다른 보류 중인 작업에 상대적인 우선 순위입니다.
- method
- Delegate
인수를 여러 개 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.
- arg
- Object
지정된 메서드에 인수로 전달하는 개체입니다.
- args
- Object[]
지정된 메서드에 인수로 전달하는 개체의 배열입니다.
반환
BeginInvoke가 호출된 후 즉시 반환되며, Dispatcher 큐에서 실행 보류 중일 때 대리자와 상호 작용하는 데 사용할 수 있는 개체입니다.
- 특성
예외
method
이(가) null
인 경우
DispatcherPriority가 올바른 속성이 아닌 경우
설명
매개 변수는 arg
인수가 필요하지 않은 경우일 null
수 있습니다.
BeginInvoke 는 DispatcherOperation 대리자가 이벤트 큐에 있을 때 대리자를 조작하는 데 사용할 수 있는 개체를 반환합니다.
반환된 BeginInvoke 개체는 DispatcherOperation 다음과 같이 지정된 대리자를 조작하는 여러 가지 방법으로 사용할 수 있습니다.
이벤트 큐에서 DispatcherPriority 실행 보류 중인 대리자의 변경
이벤트 큐에서 대리자를 제거합니다.
대리자가 돌아올 때까지 기다립니다.
대리자가 실행된 후 반환하는 값을 가져옵니다.
BeginInvoke 는 비동기입니다. 따라서 컨트롤이 호출된 후 호출 개체로 즉시 반환됩니다.
WPF에서 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 주 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 생성된 콘텐츠를 Button 업데이트할 수 없습니다. 백그라운드 스레드가 Content 속성에 Button액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 작업에 작업을 Dispatcher 위임해야 합니다. 이 작업은 둘 중 하나 Invoke 또는 BeginInvoke을 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기적입니다. 작업은 지정된 위치에서의 이벤트 큐에 Dispatcher 추가됩니다 DispatcherPriority.
여러 BeginInvoke 호출이 동일한 DispatcherPriority경우 호출이 이루어진 순서대로 실행됩니다.
종료된 Dispatcher 상태에서 호출되는 경우 BeginInvoke 반환 DispatcherOperation 된 상태 속성은 .로 Aborted설정됩니다.