파일을 읽고 이메일을받는 애플리케이션이 있습니다. 스레드를 사용하여 응용 프로그램을 실행했지만 응용 프로그램의 성능이 향상되지 않습니다. 내 문제는 무엇입니까?
스레드 사용 (54 초 소요) :
StreamReader sr = new StreamReader(@"D:\15.txt");
Regex regx = new Regex(@"([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))");
while (!sr.EndOfStream)
{
var line = sr.ReadLine();
Thread th = new Thread(new ThreadStart(() => {
var mc = regx.Matches(line);
if (mc.Count != 0)
foreach (Match item in mc)
{
Console.WriteLine(item.Value);
}
}));
th.Start();
}
일반 코드 (54 초 소요) :
StreamReader sr = new StreamReader(@"D:\15.txt");
Regex regx = new Regex(@"([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))");
while (!sr.EndOfStream)
{
var line = sr.ReadLine();
var mc = regx.Matches(line);
if (mc.Count != 0)
foreach (Match item in mc)
{
Console.WriteLine(item.Value);
}
}
스레드를 단독으로 사용한다고해서 애플리케이션이 더 빨라지는 것은 아닙니다. 이 경우 초기 상황에서 모든 작업을 수행하는 하나의 스레드가 있습니다. 다음 상황에서는 작업을 수행하기 위해 스레드를 시작하는 첫 번째 스레드가 있습니다. 그러나 여전히 하나의 스레드 처리 만 있고 처리가 준비 될 때까지 대기중인 초기 스레드가 있습니다. 더 빠르게 만들고 싶다면 병렬로 할 수있는 부품을 찾아야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다