프로세스가 UI가 응답하지 않는 것처럼 긴 프로세스를 백그라운드 프로세스로 실행하고 있습니다.백그라운드 프로세스를 사용할 때 마우스 커서가 원하는대로 표시되지 않습니다.
이제는 프로세스가 백그라운드 프로세스로 실행되는 동안 대기 커서를 표시하려고합니다. Dispatcher를 사용하여 커서를 업데이트하려고했지만 작동하지 않습니다.
private void btnStartAsyncOperation_Click(object sender, EventArgs e)
{
backgroundworkerprocess.RunWorkerAsync();
}
backgroundworkerprocess 이벤트에서 :
내 처리는 버튼 클릭에서 실행
void backgroundworkerprocess_DoWork(object sender, DoWorkEventArgs e)
{
this.dispatcher.invoke(DispatcherPriority.Background,
new action((delegate) {
this.cursor = cursors.wait
})
);
}
나는이 대기 커서가 폼의 아무 곳이나 표시 될 수 있었으면 좋겠습니다 만, 그것은 단지입니다 마우스가 버튼 위에있을 때 표시됩니다.
유효한 C#이 아닙니다. 세미콜론이 누락되어 대문자가 잘못되었습니다. 실제 * 코드가 무엇입니까? – Ryan
글쎄, 커서를 설정하고 있지 않습니다. BackgroundWorker를 시작하면 커서가 자동으로 변경되지 않습니다. 백그라운드 작업을 시작할 때 Button의 Cursor 속성을 WaitCursor로 변경 한 다음 이벤트가 발생하여 작업자가 완료되었음을 알리면 커서를 다시 변경해야합니다. – KeithS
이 코드는 어떤 클래스에 있습니까? '이 '란 무엇입니까? – cadrell0