LIST 정보Select().ToList() 느린 문제

3458 단어 select
var sendlist = emailList.Select(email => new MailMessage {

                                                    MailServer = SMTPServer,

                                                    UserName = Sender,

                                                    PassWord = EmailPassword,

                                                    ServerCode = ServerCode,

 

                                                    ToAddr = email.Email,

                                                    BCC = string.Empty,

                                                    CC = string.Empty,

 

                                                    Title =Tittle,

                                                    Body = Content,

                                                    BodyText = Description,

                                                }).ToList();

코드가 위와 같이 이메일 리스트는 리스트 로 5만 개의 기록이 있는데, 결과적으로 위의 코드 운행은 뜻밖에도 30분이 걸려서야 완성되었다.여러 차례의 디버깅을 거쳤는데, 확실히 시간은 주로 Lambda 표현식에 있다.SMTPserver는 전체 변수이기 때문에 전체 변수가 아니라 모든 줄을 다시 가져와야 합니다.
단지 하나의 전역 변수가 이렇게 느리다면, 만약 하나의 함수라면.
코드는 다음과 같습니다.
 
var mailServer = SMTPServer

var sendlist = emailList.Select(email => new MailMessage {

                                                    MailServer = mailServer,

                                                    UserName = Sender,

                                                    PassWord = EmailPassword,

                                                    ServerCode = ServerCode,

 

                                                    ToAddr = email.Email,

                                                    BCC = string.Empty,

                                                    CC = string.Empty,

 

                                                    Title =Tittle,

                                                    Body = ToContent(Content),

                                                    BodyText = Description,

                                                }).ToList();

 
 
테스트를 해봤으니 같은 상황이 나타날 수도 있다.
이를 위해 유사한 코드를 쓸 때 전역 변수와 함수가 나타나지 않도록 하십시오.
굳이 써야 한다면?
전역 변수의 해결 방법: 전역 변수의 값을 국부 변수에 부여하면 된다.
예:
 
var mailServer = SMTPServer

var sendlist = emailList.Select(email => new MailMessage {

                                                    MailServer = mailServer,

                                                    UserName = Sender,

                                                    PassWord = EmailPassword,

                                                    ServerCode = ServerCode,

 

                                                    ToAddr = email.Email,

                                                    BCC = string.Empty,

                                                    CC = string.Empty,

 

                                                    Title =Tittle,

                                                    Body = Content,

                                                    BodyText = Description,

                                                }).ToList();

함수 방법은 당분간 다른 방법을 생각하지 못하고 업무를 수정할 수밖에 없다.
 
스티커 링크http://bbs.csdn.net/topics/390500602
 

좋은 웹페이지 즐겨찾기