¿Cómo puedo pasar varios métodos (con parámetros) COMO un parámetro?

Supongamos que tengo el siguiente código WCF:

  try
  {
       ServiceClient proxy = new ServiceClient();
       proxy.ClientCredentials.UserName.UserName = "user";
       proxy.ClientCredentials.UserName.Password = "password";
       proxy.GetData(2);
       if (proxy.State = CommunicationState.Opened)
       {
           proxy.GetData("data");
       }
       proxy.Close();
  }
  catch (FaultException ex)
  {
      // handle the exception      
  }

Y como me doy cuenta de que el intento ... captura y otra lógica es repetitiva, sin mencionar que configurar una llamada WCF es costoso, quiero enviar muchos "métodos y parámetros" a esta función.

En esencia pasarGetData(2) yGetData("data") como una matriz de métodos, y que los resultados se devuelvan de forma asíncrona o síncrona.

¿Cómo lograría esto?

Supongo que podría tener dos objetos 'ref' para manejar los resultados [] y un bloqueo compartido a los resultados []. Sin embargo, no estoy seguro de cómo pasar "métodos con parámetros" como un parámetro a otra función.

Quizás otra forma de ver esto podría ser una serie de punteros de función, a la misma función con diferentes parámetros.

¿Alguien puede empujarme hacia la forma correcta de hacer esto?

Más información:

Estoy haciendo esta preguntaasí que puedo optimizar este enfoque para manejar las excepciones y los reintentos de WCF pero así no siempre tengo que abrir / cerrar el cliente después de cada llamada.

Respuestas a la pregunta(6)

Su respuesta a la pregunta