문제 : 일반 목록을 사용하는 방법은 처리하는 데 오래 걸립니다. 따라서 방법은 배경 작업자에게 맡겨야합니다.BackgroundWorker : BackgroundWorker로 일반 목록 전달
문제는 다음과 같습니다. 일반 목록을 백그라운드 워커에서 어떻게 액세스 할 수 있습니까?
[Call]
backgroundWorker.RunWorkerAsync(new Tuple<string, int, List<T>>(aInfo, aCount, aGenericList));
...
[DoWork]
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
Tuple<string, int, List<T>> aTuple = (Tuple<string, int, List<T>>)e.Argument; // won't work as <T> is not known
...
}
나는
private void backgroundWorker_DoWork<T>(object sender, DoWorkEventArgs e, List<T> theList) where T : Interface
처럼 뭔가를 좋아하지만이 어떻게 사용될 수 있는지 단서가 없을 것입니다.
나는 분명한 뭔가를 놓치고 있습니까?
목록을 전역 변수로 선언 할 수 있습니다. 아니면 클래스 범위에 넣으십시오 –
@GianAcuna 글로벌 varialbe 마찬가지로 나는 그것을 만드는 방법에 문제가있을 것입니다. 'private List aList; '는 컴파일되지 않습니다 (T를 알 수 없으므로) –
Offler
어딘가에을 알아야합니다! RunWorkerAsync()를 호출하면 어떻게 알 수 있습니까? –