Dispatcher.Invoke 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
Dispatcher가 연결된 스레드에서 지정된 대리자를 동기적으로 실행합니다.
오버로드
예제
다음 예제에서는 를 사용하여 에 대리자를 배치합니다 DispatcherNormal.Invoke
// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
// Place delegate on the Dispatcher.
this.Dispatcher.Invoke(DispatcherPriority.Normal,
new TimerDispatcherDelegate(TimerWorkItem));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
' Place delegate on the Dispatcher.
Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub
설명
WPF에서 를 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 기본 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 생성된 의 Button 콘텐츠를 업데이트할 수 없습니다. 백그라운드 스레드가 의 ButtonContent 속성에 액세스하려면 백그라운드 스레드가 작업을 Dispatcher UI 스레드와 연결된 에 위임해야 합니다. 이 작업은 또는 를 Invoke 사용하여 수행됩니다 BeginInvoke. Invoke 는 동기적이며 BeginInvoke 비동기입니다. 작업은 지정된 의 이벤트 큐 Dispatcher 에 추가됩니다 DispatcherPriority.
Invoke 는 동기 작업입니다. 따라서 콜백이 반환될 때까지 컨트롤이 호출 개체로 반환되지 않습니다.
Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])
Dispatcher가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 동기적으로 실행합니다.
public:
System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object, ParamArray args As Object()) As Object
매개 변수
- priority
- DispatcherPriority
지정된 메서드가 호출되는 이벤트 큐의 Dispatcher 다른 보류 중인 작업을 기준으로 하는 우선 순위입니다.
- timeout
- TimeSpan
작업이 시작될 때까지 대기하는 최대 시간입니다. 작업이 시작되면 이 메서드가 반환되기 전에 작업이 완료됩니다. 무한 대기를 지정하려면 -1 값을 사용합니다. 동일한 스레드 호출에서 다른 음수 값은 -1로 변환되어 무한 대기가 발생합니다. 스레드 간 호출에서 다른 음수 값은 을 ArgumentOutOfRangeExceptionthrow합니다.
- method
- Delegate
인수를 여러 개 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.
- arg
- Object
지정된 메서드에 인수로 전달하는 개체입니다.
- args
- Object[]
지정된 메서드에 인수로 전달하는 개체의 배열입니다.
반환
호출되는 대리자의 반환 값이거나, 대리자에 반환 값이 없는 경우 null
입니다.
- 특성
예외
priority
이(가) Inactive와 같은 경우.
priority
은 유효한 DispatcherPriority이 아닙니다.
method
이(가) null
인 경우
timeout
는 -1 이외의 음수이며 이 메서드는 스레드 간에 호출되었습니다.
설명
arg
null
는 인수가 필요하지 않은 경우 일 수 있습니다.
WPF에서 를 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 기본 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 만든 의 Button 콘텐츠를 업데이트할 수 없습니다. 백그라운드 스레드가 의 ButtonContent 속성에 액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 에 작업을 Dispatcher 위임해야 합니다. 이 작업은 또는 BeginInvoke를 Invoke 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기입니다. 작업은 지정된 의 이벤트 큐 Dispatcher 에 추가됩니다 DispatcherPriority.
Invoke 는 동기 작업입니다. 따라서 콜백이 반환될 때까지 컨트롤이 호출 개체로 반환되지 않습니다.
적용 대상
Invoke(DispatcherPriority, TimeSpan, Delegate, Object)
Dispatcher가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 동기적으로 실행합니다.
public:
System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object) As Object
매개 변수
- priority
- DispatcherPriority
지정된 메서드가 호출되는 이벤트 큐의 Dispatcher 다른 보류 중인 작업을 기준으로 하는 우선 순위입니다.
- timeout
- TimeSpan
작업이 시작될 때까지 대기하는 최대 시간입니다. 작업이 시작되면 이 메서드가 반환되기 전에 작업이 완료됩니다. 무한 대기를 지정하려면 -1 값을 사용합니다. 동일한 스레드 호출에서 다른 음수 값은 -1로 변환되어 무한 대기가 발생합니다. 스레드 간 호출에서 다른 음수 값은 을 ArgumentOutOfRangeExceptionthrow합니다.
- method
- Delegate
인수를 여러 개 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.
- arg
- Object
지정된 메서드에 인수로 전달하는 개체입니다. 인수가 필요하지 않으면 null
일 수 있습니다.
반환
호출되는 대리자의 반환 값이거나, 대리자에 반환 값이 없는 경우 null
입니다.
- 특성
예외
priority
이(가) Inactive와 같은 경우.
priority
가 올바른 속성이 아닌 경우
method
이(가) null
인 경우
설명
arg
는 인수가 필요하지 않은 경우 일 null
수 있습니다.
WPF에서 를 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 기본 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 만든 의 Button 콘텐츠를 업데이트할 수 없습니다. 백그라운드 스레드가 의 ButtonContent 속성에 액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 에 작업을 Dispatcher 위임해야 합니다. 이 작업은 또는 BeginInvoke를 Invoke 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기입니다. 작업은 지정된 의 이벤트 큐 Dispatcher 에 추가됩니다 DispatcherPriority.
Invoke 는 동기 작업입니다. 따라서 콜백이 반환될 때까지 컨트롤이 호출 개체로 반환되지 않습니다.
적용 대상
Invoke(DispatcherPriority, Delegate, Object, Object[])
Dispatcher가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 동기적으로 실행합니다.
public:
System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object, ParamArray args As Object()) As Object
매개 변수
- priority
- DispatcherPriority
지정된 메서드가 호출되는 이벤트 큐의 Dispatcher 다른 보류 중인 작업을 기준으로 하는 우선 순위입니다.
- method
- Delegate
인수를 여러 개 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.
- arg
- Object
지정된 메서드에 인수로 전달하는 개체입니다.
- args
- Object[]
주어진 메서드에 인수로 전달하는 개체의 배열입니다.
반환
호출되는 대리자의 반환 값이거나, 대리자에 반환 값이 없는 경우 null
입니다.
- 특성
예외
priority
이(가) Inactive와 같은 경우.
priority
가 올바른 속성이 아닌 경우
method
이(가) null
인 경우
설명
arg
는 인수가 필요하지 않은 경우 일 null
수 있습니다.
WPF에서 를 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 기본 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 만든 의 Button 콘텐츠를 업데이트할 수 없습니다. 백그라운드 스레드가 의 ButtonContent 속성에 액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 에 작업을 Dispatcher 위임해야 합니다. 이 작업은 또는 BeginInvoke를 Invoke 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기입니다. 작업은 지정된 의 이벤트 큐 Dispatcher 에 추가됩니다 DispatcherPriority.
Invoke 는 동기 작업입니다. 따라서 콜백이 반환될 때까지 컨트롤이 호출 개체로 반환되지 않습니다.
적용 대상
Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)
Action가 연결된 스레드에서 지정된 우선 순위에 있는 지정된 Dispatcher를 동기적으로 실행합니다.
public:
void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan)
매개 변수
- callback
- Action
디스패처를 통해 호출할 작업 대리자입니다.
- priority
- DispatcherPriority
의 다른 보류 중인 작업을 Dispatcher기준으로 지정된 콜백이 호출되는 순서를 결정하는 우선 순위입니다.
- cancellationToken
- CancellationToken
동작을 취소할지 여부를 나타내는 개체입니다.
- timeout
- TimeSpan
작업이 시작될 때까지 대기하는 최대 시간입니다. 작업이 시작되면 이 메서드가 반환되기 전에 작업이 완료됩니다. 무한 대기를 지정하려면 -1 값을 사용합니다. 동일한 스레드 호출에서 다른 음수 값은 -1로 변환되어 무한 대기가 발생합니다. 스레드 간 호출에서 다른 음수 값은 을 ArgumentOutOfRangeExceptionthrow합니다.
예외
callback
이(가) null
인 경우
timeout
는 -1 이외의 음수이며 이 메서드는 스레드 간에 호출되었습니다.
priority
가 올바른 속성이 아닌 경우
취소 토큰이 취소되었습니다. 이 예외는 반환된 작업에 저장됩니다.
적용 대상
Invoke(DispatcherPriority, TimeSpan, Delegate)
Dispatcher가 만들어진 스레드에서 지정된 제한 시간 값을 사용하여 지정된 우선 순위에 있는 지정된 대리자를 동기적으로 실행합니다.
public:
System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate) As Object
매개 변수
- priority
- DispatcherPriority
지정된 메서드가 호출되는 이벤트 큐의 Dispatcher 다른 보류 중인 작업을 기준으로 하는 우선 순위입니다.
- timeout
- TimeSpan
작업이 시작될 때까지 대기하는 최대 시간입니다. 작업이 시작되면 이 메서드가 반환되기 전에 작업이 완료됩니다. 무한 대기를 지정하려면 -1 값을 사용합니다. 동일한 스레드 호출에서 다른 음수 값은 -1로 변환되어 무한 대기가 발생합니다. 스레드 간 호출에서 다른 음수 값은 을 ArgumentOutOfRangeExceptionthrow합니다.
- method
- Delegate
인수가 없는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.
반환
호출되는 대리자의 반환 값이거나, 대리자에 반환 값이 없는 경우 null
입니다.
- 특성
예외
method
이(가) null
인 경우
timeout
는 -1 이외의 음수이며 이 메서드는 스레드 간에 호출되었습니다.
priority
이(가) Inactive와 같은 경우.
priority
가 올바른 속성이 아닌 경우
설명
WPF에서 를 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 기본 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 만든 의 Button 콘텐츠를 업데이트할 수 없습니다. 백그라운드 스레드가 의 ButtonContent 속성에 액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 에 작업을 Dispatcher 위임해야 합니다. 이 작업은 또는 BeginInvoke를 Invoke 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기입니다. 작업은 지정된 의 이벤트 큐 Dispatcher 에 추가됩니다 DispatcherPriority.
Invoke 는 동기 작업입니다. 따라서 콜백이 반환될 때까지 컨트롤이 호출 개체로 반환되지 않습니다.
적용 대상
Invoke(DispatcherPriority, Delegate, Object)
Dispatcher가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 동기적으로 실행합니다.
public:
System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object) As Object
매개 변수
- priority
- DispatcherPriority
지정된 메서드가 호출되는 이벤트 큐의 Dispatcher 다른 보류 중인 작업을 기준으로 하는 우선 순위입니다.
- method
- Delegate
인수를 하나 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.
- arg
- Object
지정된 메서드에 인수로 전달하는 개체입니다.
반환
호출되는 대리자의 반환 값이거나, 대리자에 반환 값이 없는 경우 null
입니다.
- 특성
예외
priority
이(가) Inactive와 같은 경우.
priority
가 올바른 속성이 아닌 경우
method
이(가) null
인 경우
설명
arg
는 인수가 필요하지 않은 경우 일 null
수 있습니다.
WPF에서 를 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 기본 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 만든 의 Button 콘텐츠를 업데이트할 수 없습니다. 백그라운드 스레드가 의 ButtonContent 속성에 액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 에 작업을 Dispatcher 위임해야 합니다. 이 작업은 또는 BeginInvoke를 Invoke 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기입니다. 작업은 지정된 의 이벤트 큐 Dispatcher 에 추가됩니다 DispatcherPriority.
Invoke 는 동기 작업입니다. 따라서 콜백이 반환될 때까지 컨트롤이 호출 개체로 반환되지 않습니다.
적용 대상
Invoke(Delegate, TimeSpan, DispatcherPriority, Object[])
Dispatcher가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위의 지정된 기간 내에서 지정된 대리자를 동기적으로 실행합니다.
public:
System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, TimeSpan timeout, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * TimeSpan * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, priority As DispatcherPriority, ParamArray args As Object()) As Object
매개 변수
- method
- Delegate
args
에 지정된 매개 변수를 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.
- timeout
- TimeSpan
작업이 시작될 때까지 대기하는 최대 시간입니다. 작업이 시작되면 이 메서드가 반환되기 전에 작업이 완료됩니다. 무한 대기를 지정하려면 -1 값을 사용합니다. 동일한 스레드 호출에서 다른 음수 값은 -1로 변환되어 무한 대기가 발생합니다. 스레드 간 호출에서 다른 음수 값은 을 ArgumentOutOfRangeExceptionthrow합니다.
- priority
- DispatcherPriority
지정된 메서드가 호출되는 이벤트 큐의 Dispatcher 다른 보류 중인 작업을 기준으로 하는 우선 순위입니다.
- args
- Object[]
주어진 메서드에 인수로 전달하는 개체의 배열입니다.
null
일 수 있습니다.
반환
호출되는 대리자의 반환 값이거나, 대리자에 반환 값이 없는 경우 null
입니다.
예외
method
이(가) null
인 경우
timeout
는 -1 이외의 음수이며 이 메서드는 스레드 간에 호출되었습니다.
priority
이(가) Inactive와 같은 경우.
priority
가 올바른 속성이 아닌 경우
설명
WPF에서 를 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 기본 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 만든 의 Button 콘텐츠를 업데이트할 수 없습니다. 백그라운드 스레드가 의 ButtonContent 속성에 액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 에 작업을 Dispatcher 위임해야 합니다. 이 작업은 또는 BeginInvoke를 Invoke 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기입니다. 작업은 지정된 의 이벤트 큐 Dispatcher 에 추가됩니다 DispatcherPriority.
Invoke 는 동기 작업입니다. 따라서 콜백이 반환될 때까지 컨트롤이 호출 개체로 반환되지 않습니다.
적용 대상
Invoke(Delegate, TimeSpan, Object[])
Dispatcher가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위의 지정된 기간 내에서 지정된 대리자를 동기적으로 실행합니다.
public:
System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, TimeSpan timeout, params object[] args);
member this.Invoke : Delegate * TimeSpan * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, ParamArray args As Object()) As Object
매개 변수
- method
- Delegate
args
에 지정된 매개 변수를 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.
- timeout
- TimeSpan
작업이 시작될 때까지 대기하는 최대 시간입니다. 그러나 작업이 시작되면 이 메서드가 반환되기 전에 완료됩니다. 무한 대기를 지정하려면 -1 값을 사용합니다. 동일한 스레드 호출에서 다른 음수 값은 -1로 변환되어 무한 대기가 발생합니다. 스레드 간 호출에서 다른 음수 값은 을 ArgumentOutOfRangeExceptionthrow합니다.
- args
- Object[]
주어진 메서드에 인수로 전달하는 개체의 배열입니다. 인수가 필요하지 않은 경우 일 null
수 있습니다.
반환
호출되는 대리자의 반환 값이거나, 대리자에 반환 값이 없는 경우 null
입니다.
예외
method
이(가) null
인 경우
timeout
는 -1 이외의 음수이며 스레드 간에 호출합니다.
설명
WPF에서 를 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 기본 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 만든 의 Button 콘텐츠를 업데이트할 수 없습니다. 백그라운드 스레드가 의 ButtonContent 속성에 액세스하려면 백그라운드 스레드가 UI 스레드와 연결된 에 작업을 Dispatcher 위임해야 합니다. 이 작업은 또는 BeginInvoke를 Invoke 사용하여 수행됩니다. Invoke 는 동기적이며 BeginInvoke 비동기입니다. 작업은 지정된 의 이벤트 큐 Dispatcher 에 추가됩니다 DispatcherPriority.
Invoke 는 동기 작업입니다. 따라서 콜백이 반환될 때까지 컨트롤이 호출 개체로 반환되지 않습니다.
적용 대상
Invoke(Action, DispatcherPriority, CancellationToken)
Action가 연결된 스레드에서 지정된 우선 순위에 있는 지정된 Dispatcher를 동기적으로 실행합니다.
public:
void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken)
매개 변수
- callback
- Action
디스패처를 통해 호출할 대리자입니다.
- priority
- DispatcherPriority
의 다른 보류 중인 작업을 Dispatcher기준으로 지정된 콜백이 호출되는 순서를 결정하는 우선 순위입니다.
- cancellationToken
- CancellationToken
동작을 취소할지 여부를 나타내는 개체입니다.
예외
취소 토큰이 취소되었습니다. 이 예외는 반환된 작업에 저장됩니다.
적용 대상
Invoke(DispatcherPriority, Delegate)
가 연결된 스레드 Dispatcher 에서 지정된 우선 순위에 따라 지정된 대리자를 동기적으로 실행합니다.
public:
System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate) As Object
매개 변수
- priority
- DispatcherPriority
이벤트 큐의 다른 보류 중인 작업을 Dispatcher 기준으로 지정된 메서드가 호출되는 우선 순위입니다.
- method
- Delegate
인수가 없는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.
반환
호출되는 대리자의 반환 값이거나, 대리자에 반환 값이 없는 경우 null
입니다.
- 특성
예외
priority
이(가) Inactive와 같은 경우.
priority
가 올바른 속성이 아닌 경우
method
이(가) null
인 경우
예제
다음 예제에서는 를 사용하여 Invoke에 Normal 대리자를 Dispatcher 배치합니다.
// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
// Place delegate on the Dispatcher.
this.Dispatcher.Invoke(DispatcherPriority.Normal,
new TimerDispatcherDelegate(TimerWorkItem));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
' Place delegate on the Dispatcher.
Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub
설명
WPF에서 를 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 기본 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 생성된 의 Button 콘텐츠를 업데이트할 수 없습니다. 백그라운드 스레드가 의 ButtonContent 속성에 액세스하려면 백그라운드 스레드가 작업을 Dispatcher UI 스레드와 연결된 에 위임해야 합니다. 이 작업은 또는 를 Invoke 사용하여 수행됩니다 BeginInvoke. Invoke 는 동기적이며 BeginInvoke 비동기입니다. 작업은 지정된 의 이벤트 큐 Dispatcher 에 추가됩니다 DispatcherPriority.
Invoke 는 동기 작업입니다. 따라서 콜백이 반환될 때까지 컨트롤이 호출 개체로 반환되지 않습니다.
적용 대상
Invoke(Delegate, Object[])
Dispatcher가 연결된 스레드에서 지정된 인수를 사용하여 지정된 대리자를 동기적으로 실행합니다.
public:
System::Object ^ Invoke(Delegate ^ method, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, params object[] args);
member this.Invoke : Delegate * obj[] -> obj
Public Function Invoke (method As Delegate, ParamArray args As Object()) As Object
매개 변수
- method
- Delegate
args
에 지정된 매개 변수를 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.
- args
- Object[]
주어진 메서드에 인수로 전달하는 개체의 배열입니다.
null
일 수 있습니다.
반환
호출되는 대리자의 반환 값이거나, 대리자에 반환 값이 없는 경우 null
입니다.
설명
WPF에서 를 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 기본 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 생성된 의 Button 콘텐츠를 업데이트할 수 없습니다. 백그라운드 스레드가 의 ButtonContent 속성에 액세스하려면 백그라운드 스레드가 작업을 Dispatcher UI 스레드와 연결된 에 위임해야 합니다. 이 작업은 또는 를 Invoke 사용하여 수행됩니다 BeginInvoke. Invoke 는 동기적이며 BeginInvoke 비동기입니다. 작업은 지정된 의 이벤트 큐 Dispatcher 에 추가됩니다 DispatcherPriority.
Invoke 는 동기 작업입니다. 따라서 콜백이 반환될 때까지 컨트롤이 호출 개체로 반환되지 않습니다.
적용 대상
Invoke(Action, DispatcherPriority)
Action가 연결된 스레드에서 지정된 우선 순위에 있는 지정된 Dispatcher를 동기적으로 실행합니다.
public:
void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority)
매개 변수
- callback
- Action
디스패처를 통해 호출할 대리자입니다.
- priority
- DispatcherPriority
의 다른 보류 중인 작업을 Dispatcher기준으로 지정된 콜백이 호출되는 순서를 결정하는 우선 순위입니다.
적용 대상
Invoke(Action)
Action가 연결된 스레드에서 지정된 Dispatcher를 비동기적으로 실행합니다.
public:
void Invoke(Action ^ callback);
public void Invoke (Action callback);
member this.Invoke : Action -> unit
Public Sub Invoke (callback As Action)
매개 변수
- callback
- Action
디스패처를 통해 호출할 대리자입니다.
설명
기본 우선 순위는 입니다 DispatcherPriority.Send
.
적용 대상
Invoke(Delegate, DispatcherPriority, Object[])
Dispatcher가 연결된 스레드에서 지정된 인수를 사용하여 지정된 우선 순위에 있는 지정된 대리자를 동기적으로 실행합니다.
public:
System::Object ^ Invoke(Delegate ^ method, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, priority As DispatcherPriority, ParamArray args As Object()) As Object
매개 변수
- method
- Delegate
args
에 지정된 매개 변수를 사용하는 메서드에 대한 대리자로, Dispatcher 이벤트 큐로 푸시됩니다.
- priority
- DispatcherPriority
이벤트 큐의 다른 보류 중인 작업을 Dispatcher 기준으로 지정된 메서드가 호출되는 우선 순위입니다.
- args
- Object[]
주어진 메서드에 인수로 전달하는 개체의 배열입니다.
null
일 수 있습니다.
반환
호출되는 대리자의 반환 값이거나, 대리자에 반환 값이 없는 경우 null
입니다.
설명
WPF에서 를 만든 스레드만 해당 개체에 DispatcherObject 액세스할 수 있습니다. 예를 들어 기본 UI 스레드에서 분리된 백그라운드 스레드는 UI 스레드에서 생성된 의 Button 콘텐츠를 업데이트할 수 없습니다. 백그라운드 스레드가 의 ButtonContent 속성에 액세스하려면 백그라운드 스레드가 작업을 Dispatcher UI 스레드와 연결된 에 위임해야 합니다. 이 작업은 또는 를 Invoke 사용하여 수행됩니다 BeginInvoke. Invoke 는 동기적이며 BeginInvoke 비동기입니다. 작업은 지정된 의 이벤트 큐 Dispatcher 에 추가됩니다 DispatcherPriority.
Invoke 는 동기 작업입니다. 따라서 콜백이 반환될 때까지 컨트롤이 호출 개체로 반환되지 않습니다.
적용 대상
Invoke<TResult>(Func<TResult>)
Func<TResult>가 연결된 스레드에서 지정된 Dispatcher를 비동기적으로 실행합니다.
public:
generic <typename TResult>
TResult Invoke(Func<TResult> ^ callback);
public TResult Invoke<TResult> (Func<TResult> callback);
member this.Invoke : Func<'Result> -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult)) As TResult
형식 매개 변수
- TResult
지정된 대리자의 반환 값 형식입니다.
매개 변수
- callback
- Func<TResult>
디스패처를 통해 호출할 대리자입니다.
반환
callback
에서 반환된 값입니다.
적용 대상
Invoke<TResult>(Func<TResult>, DispatcherPriority)
Func<TResult>가 연결된 스레드에서 지정된 우선 순위에 있는 지정된 Dispatcher를 동기적으로 실행합니다.
public:
generic <typename TResult>
TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority) As TResult
형식 매개 변수
- TResult
지정된 대리자의 반환 값 형식입니다.
매개 변수
- callback
- Func<TResult>
디스패처를 통해 호출할 대리자입니다.
- priority
- DispatcherPriority
의 다른 보류 중인 작업을 Dispatcher기준으로 지정된 콜백이 호출되는 순서를 결정하는 우선 순위입니다.
반환
callback
에서 반환된 값입니다.
적용 대상
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)
Func<TResult>가 연결된 스레드에서 지정된 우선 순위에 있는 지정된 Dispatcher를 동기적으로 실행합니다.
public:
generic <typename TResult>
TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken) As TResult
형식 매개 변수
- TResult
지정된 대리자의 반환 값 형식입니다.
매개 변수
- callback
- Func<TResult>
디스패처를 통해 호출할 대리자입니다.
- priority
- DispatcherPriority
의 다른 보류 중인 작업을 Dispatcher기준으로 지정된 콜백이 호출되는 순서를 결정하는 우선 순위입니다.
- cancellationToken
- CancellationToken
작업을 취소할지 여부를 나타내는 개체입니다.
반환
callback
에서 반환된 값입니다.
예외
취소 토큰이 취소되었습니다. 이 예외는 반환된 작업에 저장됩니다.
적용 대상
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)
Func<TResult>가 연결된 스레드에서 지정된 우선 순위에 있는 지정된 Dispatcher를 동기적으로 실행합니다.
public:
generic <typename TResult>
TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan) As TResult
형식 매개 변수
- TResult
지정된 대리자의 반환 값 형식입니다.
매개 변수
- callback
- Func<TResult>
디스패처를 통해 호출할 대리자입니다.
- priority
- DispatcherPriority
의 다른 보류 중인 작업을 Dispatcher기준으로 지정된 콜백이 호출되는 순서를 결정하는 우선 순위입니다.
- cancellationToken
- CancellationToken
작업을 취소할지 여부를 나타내는 개체입니다.
- timeout
- TimeSpan
작업이 시작될 때까지 대기할 최대 시간입니다. 작업이 시작되면 이 메서드가 반환되기 전에 완료됩니다. 무한 대기를 지정하려면 -1 값을 사용합니다. 동일한 스레드 호출에서 다른 음수 값은 -1로 변환되어 무한 대기가 발생합니다. 스레드 간 호출에서 다른 음수 값은 을 ArgumentOutOfRangeExceptionthrow합니다.
반환
callback
에서 반환된 값입니다.
예외
callback
이(가) null
인 경우
timeout
는 -1 이외의 음수이며 메서드는 스레드 간에 호출되었습니다.
priority
가 올바른 속성이 아닌 경우
취소 토큰이 취소되었습니다. 이 예외는 반환된 작업에 저장됩니다.
적용 대상
.NET