특정 웹 페이지에서 콘텐츠를 다운로드하고 content
이라는 문자열 변수에 넣는 C# winforms 응용 프로그램이 있습니다. 그런 다음 content
내에 특정 키워드 (문자열에 포함되어 있고 쉼표로 구분)를 검색하고 일치하는 항목이 있으면 경보를 울립니다. 그렇지 않으면 다른 웹 요청을 만들어 검색을 다시 실행합니다.제한된 시간 동안 동적 배열에 변수를 유지하는 방법
고객이 다른 것을 요청했습니다. 키워드를 찾은 다음 알람을 울린 후 프로그램을 계속 실행하고 싶지만 이번에는 마지막 5 분 동안 발견되지 않은 나머지 키워드 만 찾아야합니다.
foundKeywordsList
라고하는 동적 배열에 발견 된 키워드를 추가하고 5 분이 지난 후 스톱워치 또는 타이머를 배열에서 제거하려고 생각했지만 그 방법을 모릅니다. 그래서 제 질문입니다. 지금까지는 관련 코드 (루프 내에서 실행 됨)입니다.
List<string> foundKeywordsList = new List<string>();
string keywords = "scott,mark,tom,bob,sam";
string[] keywordArray = keywords.Split(',');
foreach (string kw in keywordArray)
{
// Performs search only if the keyword wasn't found in the last 5 minutes
if (!foundKeywordsList.Contains(kw) && content.IndexOf(kw) != -1)
{
//
// code for triggering the alarm
//
foundKeywordsList.Add(kw);
}
}
감사합니다.
타이머를 구현하는 방법에 대한 예제를 제공해 주시겠습니까? –
감사합니다. Btw, RemoveOldFoundKeywords를 매우 간결하고 명확한 방법으로 디버깅하려고 시도했지만, 오로지 (분명히 debbuging 할 때만) 작동합니다. 그 이상한 행동에 대한 이유가 있습니까? –
일관되게 작동해야합니다. 메서드는 5 분 이상 오래된 항목 만 제거하는 동안 타이머가 매분마다 실행됩니다.메서드가 호출 될 때 예외가 발생합니까? 아니면 아무 일도 일어나지 않았습니까? – JRLambert