저는 WPF (및 컴퓨터 과학 전반)를 처음 사용하고 5 개의 탭이 있고 각기 다른 사이트로 이동하는 내 보스로부터 작은 프로젝트를 받았습니다. 로그인하면 사용자는 첫 번째 탭의 웹 사이트로 이동합니다. 백그라운드에서 4 개의 다른 탭이 백그라운드에서로드되어야합니다.백그라운드에서 모든 탭을로드하는 방법
각각은 "tabItem1", "tabItem2", "tabItem2", "tabItem3", "tabItem4"부터 "tabItem5"까지입니다. 각각 안에 "webBrowser5"가 있습니다.
백그라운드에서 페이지를로드하는 스레딩을 사용해야한다고 생각하지만 구현 방법을 잘 모르겠습니다.
public MainWindow()
{
InitializeComponent();
Thread thread1 = new Thread(Update1);
thread1.SetApartmentState(ApartmentState.STA);
thread1.Start();
Thread thread2 = new Thread(Update2);
thread2.SetApartmentState(ApartmentState.STA);
thread2.Start();
Thread thread3 = new Thread(Update3);
thread3.SetApartmentState(ApartmentState.STA);
thread3.Start();
Thread thread4 = new Thread(Update4);
thread4.SetApartmentState(ApartmentState.STA);
thread4.Start();
}
private void Update1()
{
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
(ThreadStart)delegate()
{
tabItem2.Focus();
}
);
}
private void Update2()
{
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
(ThreadStart)delegate()
{
tabItem3.Focus();
}
);
}
//...Goes up to Update4
이 마지막 스레드에 집중하는 것 또한 그것에게 배경을하지 않습니다 나는 등의 MainWindow를에 4 개 개의 스레드를 생성했습니다. 나는 어떤 지침과 도움을 주셔서 감사합니다. 감사!
4 개의 스레드가 시작됩니다.이 스레드는 바로 탭에 포커스를 설정하기 위해 UI 스레드 *로 즉시 호출 된 다음 즉시 종료됩니다. 모든 실제 작업은 UI 스레드에서 수행되고 있습니다. 사용자가 컨트롤과 상호 작용해야하기 때문에 그렇습니다. 무슨 일이 일어나기를 기대 했습니까?내 생각 엔 각 탭에서 일종의 데이터로드를 수행해야한다는 것입니다. 데이터가 어떻게로드되는지 보여줄 수 있습니까? –
초점을 수행하면 각 탭에 하나씩 초점이 맞춰 지지만 너무 빠르므로 마지막 작업 만 볼 수 있습니다. 특정 URL로 웹 브라우저를로드해야합니까? – Clueless
@ChrisShain 데이터로드 방법을 100 % 확신하지는 못했지만 다른 웹 사이트 링크 일뿐입니다. 다음은 각 격자 항목이 XAML 파일의 모습입니다 : 예 –