커스텀 임베디드 하드웨어로 모든 TCP/IP 통신을 처리하는 라이브러리를 작성했습니다. 우리 회사의 대부분의 소프트웨어와 함께 사용되며 향후에는 별도로 판매 될 수 있습니다.내 외부 라이브러리에서 모든 이벤트를 호출하지 않으려면 어떻게합니까?
가장 귀찮은 점은 라이브러리에서 이벤트를 처리 할 때마다 호출 할 별도의 함수가 있어야한다는 것입니다. 나는 단지 이것을하는 더 쉬운 방법이 있다는 것을 단지 상상할 수있다. 나는 단지 모른다. ...
어떤 아이디어라도?
public Setup(DiscoveryReader reader)
{
download = new DownloadFilesIndividual(Reader.ip, DateTime.Today);
download.OnDownloadStatus += new DownloadStatusHandler(download_OnDownloadStatus);
}
void download_OnDownloadStatus(DownloadStatus status)
{
Invoke(new DownloadStatusHandler(this.safe_download_OnDownloadStatus), new object[] { status });
}
void safe_download_OnDownloadStatus(DownloadStatus status)
{
// Do UI stuff here
}
이 작업을 수행하는 정확한 이유는 무엇 구문 설탕? 'safe_download'는 실제로 얼마나 "안전"합니까? –
아, 알겠습니다. "UI 물건", ㅎ. –
라이브러리가 다른 스레드에서 tcp 항목을 실행 중이기 때문에 호출이 필요합니다. 그런 다음 tcp 스레드는 직접 양식을 조작 할 수없는 이벤트를 시작합니다. safe_download는 실제로 더 안전하지 않습니다. 그 단어는 처음에 추가하는 습관을 가졌습니다. – Tim