какой шаблон следует использовать для соединения .NET UI с классом библиотеки .NET, который будет предоставлять обновления обратного вызова - PullRequest
1 голос
/ 19 июля 2010

Какой наилучший подход / шаблон я должен использовать для следующих целей?

  1. Есть решение на C # UI, которое будет иметь (a) Winforms / WPF UI и (b) библиотеку классов.
  2. Пользовательский интерфейс должен будет запустить отдельный поток для подпрограммы в библиотеке классов, которая будет опрашивать
  3. Затем библиотеке классов потребуется вызвать функцию обратного вызова в пользовательском интерфейсе для обновления полей пользовательского интерфейса при необходимости.

Как лучше всего реализовать это соглашение об обратном вызове, чтобы библиотека классов могла быть повторно использована, и в идеале она не должна зависеть от компонента пользовательского интерфейса.

спасибо

Ответы [ 2 ]

3 голосов
/ 19 июля 2010

Используйте Backgroundworker для этого. Это облегчит вашу реализацию и управление потоками.

2 голосов
/ 19 июля 2010

Вы можете сделать это с помощью события, которое вызывается из вашей библиотеки, таким образом, библиотеке нужно будет только извлечь событие, если пользовательский интерфейс решит использовать событие, то это реализация в пользовательском интерфейсе.

Вы также можете предоставить свойство, например CallbackMethod, и иметь делегата, который он принимает, затем в пользовательском интерфейсе вы задаете для свойства адрес вашей функции. Когда библиотеке необходимо «отправить необходимый обратный вызов», вы проверяете, заполнен ли обратный вызов, а затем вызовите функцию обратного вызова (через делегат), если она установлена, или просто пропустите ее, если у нее нет

...