자, 여기에 기본 배경이 있습니다. 이 프로그램은 Outlook/Exchange에 연결하고 모든 메일 메시지를 분석하여 암호화 된 것을 확인합니다. 내가하고 싶은 일 중 하나는 멀티 스레딩을 사용하여 메시지를 스캔하는 데 걸리는 시간을 줄이는 것입니다.foreach 루프를 Parallel.ForEach 루프로 변경
foreach (Object item in folder.Items) {
//Checks for encryption and gets needed info and updates count
}
내가 대신 Parallel.ForEach 기능을 활용하는 싶습니다
는 현재 코드는 다음과 같습니다. 나는 그것을 어떻게 설정할 수 있는지 궁금했다. 표현식을 지금 설정하는 방법을 시도했지만 객체 유형이 변수로 사용되었다는 오류가 발생합니다. 어떤 도움이라도 대단히 감사하겠습니다.
좋아요, 내가 준 레이아웃은 옳은 것 같습니다. 코드는 현재 다음과 같습니다
Error 15 The type arguments for method System.Threading.Tasks.Parallel.ForEach(System.Collections.Concurrent.OrderablePartitioner, System.Action)' cannot be inferred from the usage. Try specifying the type arguments explicitly.
어떤 아이디어 :
Parallel.ForEach(folder.Items, item =>
{
//does stuff
});
내가 지금 다음과 같은 오류는 무엇입니까? 도움 주셔서 감사합니다.
그래,이 사이트를 발견 : http://blogs.msdn.com/b/pfxteam/archive/2010/03/02/9971804.aspx 그리고 나에게 오류가 필요한 대답을 주었다. 캐스팅 기능을 사용하여 컬렉션을 일반적인 것으로 변경해야했습니다.
static IEnumerable<object> Cast(IEnumerable source)
{
foreach (object o in source)
yield return o;
}
그리고는 오류없이 실행 이제
Parallel.ForEach(Cast(folder.Items), item =>
{
//does stuff
});
에 원본을 조정할. 만세. 이 같은
수정 된 코드 (오류 메시지를주는 코드)를 게시하십시오. –
편집 후 : 이제 folder.Items 및/또는 // stuff stuff에 의존합니다. –