각 문자열의 길이가 약 20000 인 문자열 목록이 있습니다. 이 모든 문자열을 여러 배경 작업자를 사용하여 같은 위치에서 동일한 문자열의 반대 버전으로 바꾸려고합니다.개체에 액세스하는 C# 복수의 배경 작업자
는 Heres는 지금까지 무엇을하고 있어요 : (컴퓨터 8 개 코어를 가지고 있기 때문에 8)
배경 노동자를 설정
for (int j = 0; j < 8; j++)
{
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += DoWork;
worker.RunWorkerCompleted += WorkComplete;
worker.RunWorkerAsync();
}
난 데 문제는 내가 무엇을 알 수 없다는 것입니다 doWork 함수를 넣는다.
private void DoWork(object sender, DoWorkEventArgs e)
{
while(list.count > 0)
{
reverse and add to list
}
}
을 또는 doWork의 기능은 반전해야하고 WorkComplete 함수에 반전 문자열을 전달 :
는 dowork 기능은 다음과 같이 루프 계속해야 하는가?
private void DoWork(object sender, DoWorkEventArgs e)
{
reverse string
r.result = reversed string
}
배경 작업자 대신 '작업 병렬 라이브러리'를 보셨습니까? http://msdn.microsoft.com/en-us/library/dd460717.aspx –
다른 backgroundworker 인스턴스에서 처리 된 목록 항목을 어떻게 추적하고 싶습니까? – JeffRSon
BGW가 실제로 그렇게 설계된 것은 아닙니다. 일반적으로 하나의 BGW를 가지고 있으며 공유 데이터 (진행 및 완료 이벤트 제외)를 사용하지 않습니다. 동시에 여러 데이터를 처리하려는 경우 TPL을 사용하고 작업을 시작하는 것이 좋습니다. –