이벤트 중심의 GUIS에서 UI 업데이트를 간소화하는
문제 : Tedious 점검
InvokeRequired
솔루션 : 간결한 코드를위한 확장 메소드
사용 :
보이지 않는 컨트롤 : 를 잘못 반환하여 교차 스레드 예외를 초래할 수 있습니다. 와 같은 대안을 고려하십시오.InvokeRequired
로 확장
<code class="language-csharp">private void UpdateUI() {
if (myControl.InvokeRequired) {
myControl.Invoke(new MethodInvoker(() => { UpdateUI(); }));
} else {
myControl.Text = "Updated Text";
}
}</code>
는 한계가 있습니다
<code class="language-csharp">public static void SafeInvoke(this Control control, Action action) {
if (control.InvokeRequired) {
control.Invoke(action);
} else {
action();
}
}</code>
따라서이 접근법을 신중하게 사용하십시오. 복잡하거나 성능에 민감한 시나리오의 경우
위 내용은 이벤트 중심 GUI 개발에서 UI 스레딩을 단순화하려면 어떻게해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!