여기

2014-09-24 2 views
1

를 호출 내 대리인 서명입니다 :여기

:

다음
AllergiesDelegate allergies = new AllergiesDelegate(
    GetChartFacadeObj().LoadAllergyPrintData); 
IAsyncResult Allergies = allergies.BeginInvoke(
    long.Parse(patientAccount), long.Parse(chartID), Is_CF, null, null); 

함수 서명입니다 : 내가 그것을 호출하는 방법

다음
public delegate PrintAllergyClass AllergiesDelegate(
    long patientAccount, long chartId, bool isCf, string practiceCode = ""); 

입니다

public PrintAllergyClass LoadAllergyPrintData( long PAcc, long ChartID, bool Is_CF, string PracticeCode="") 

그러나 그것은 나에게 오류를 제공합니다 : 예상대로 인텔리에

No overload for method 'BeginInvoke' takes 5 arguments.

, 그것은 인수를 원하는 보여줍니다.

친절히 안내하면이 케이스를 어떻게 처리할까요?

+0

알레르기가 어떤지 보려면 intellisense를보십시오 .BeginInvoke가 기대합니다. 그런 다음 기대하는 것을 제공하십시오. – usr

+0

문제의 요점을 제외하고는 thread-pool 기반 APM 모델 대신에'Task'를 사용해야 할 것입니다. – usr

+0

@ usr..on intellisense 그것은 옵션 코드 –

답변

1

인텔리는 대리자를 호출하는 방법을 보여줍니다 제공 할 수있는 두 개의 추가 인프라 인수가 있습니다

enter image description here

. 대리자 서명의 선택적 매개 변수는 대리자의 BeginInvoke 메서드로 전송되지 않습니다.

public delegate object AllergiesDelegate(
     long patientAccount, long chartId, bool isCf, string practiceCode = ""); 

    static void Main(string[] args) 
    { 
     AllergiesDelegate allergies = null; 
     IAsyncResult Allergies = allergies.BeginInvoke(0, 0, false, "", null, null); 
    } 
+0

@ usr ..로 practiceCode로 원하는 인수를 보여줍니다. 이미지를 볼 수 없습니다. 정교하거나 저에게 코드 조각을주세요. –

+0

'EndInvoke '? 'BeginInvoke' 다음에 항상'EndInvoke'를 호출하여 필요한 정리를 허용합니다. – Aron

+0

@Aron 나는 동의한다. 그러나 그것은 어떻습니까? 원하는 시점에서 EndInvoke를 호출하십시오. 문제는 그것에 관한 것이 아닙니다. – usr