Retornar um valor de um evento - há uma boa prática para isso?

Eu estou fazendo um pequeno aplicativo multi-threaded que usa sockets TCP assíncronos, mas vou chegar ao ponto: estou usando um evento personalizado para ler um valor de um formulário e o delegado usado pelo evento retorna uma string quando terminar .

Minha pergunta aqui é: isso é correto? está tudo bem para retornar valores dos eventos? Ou há uma maneira melhor de fazer isto? (como usar um delegado simples no formulário para ler os valores)

questionAnswers(9)

yourAnswerToTheQuestion