이벤트 핸들러를 매개 변수로 전달

user1046403

좋아, 내 코드에 무엇이 잘못되었는지, 그리고 무슨 일이 일어나고 있는지 잘 모르겠습니다.

class Activity 다음과 같은 방법이 있습니다

protected struct EventParams
    {
        public object sender;
        public EventArgs e;
    }
private EventParams WaitEventRaise_Body(ref EventHandler<EventArgs> handler, int timeout)
    {
        AutoResetEvent receiver = new AutoResetEvent(false);
        EventParams result = new EventParams();

        EventHandler<EventArgs> handle = new EventHandler<EventArgs>((sender, e) =>
        {
            result.e = e;
            result.sender = sender;
            receiver.Set();
        });

        handler += handle;

        if (timeout > 0)
        {
            receiver.WaitOne(timeout);
        }
        else
        {
            receiver.WaitOne();
        }

        return result;
    }

protected EventParams WaitEventRaise(ref EventHandler<EventArgs> handler)
{
    return WaitEventRaise_Body(ref handler, -1);
}
protected EventParams WaitEventRaise(ref EventHandler<EventArgs> handler, int timeout)
{
    return WaitEventRaise_Body(ref handler, timeout);
}

좋습니다. 그래서 저는 AutoResetEvent를 반복해서 쓰고 있다는 것을 알게되었습니다. 그래서 저는 메서드를 만들기로 결정했습니다. 하지만 파생 클래스에서이 메서드를 호출하려고하면Bot : Activity

EventParams eventResult = WaitEventRaise(ref currentJob.JobReported);

준다

오류 30 Project.Activity.WaitEventRaise (ref System.EventHandler)에 대한 최상의 오버로드 메서드 일치에 잘못된 인수가 있습니다.

currentJob은 Job : Activity이벤트 가있는 클래스입니다.

public event EventHandler<JobReport> JobReported;

class JobReport : EventArgs

제가하고 싶은 것은 일을하는 봇이 있다는 것입니다. 실제로 그것은 일자리를 만들고 그들이 일을 마칠 때까지 기다립니다. Job 클래스는 내부에서 이벤트를 발생시켜 봇 클래스가 작업을 완료했음을 알립니다. 그리고 봇 클래스는 작업이 이벤트를 발생시킬 때까지 기다립니다. 그래서 나는 그것이 명확하기를 바랍니다. 그리고 영어가 제 모국어가 아니라는 점에 대해 유감입니다.

존 스키트

기본적으로 그런 이벤트를 언급 할 수 없습니다. 두 가지 옵션 :

  • "처리기 추가"및 "처리기 제거"에 대한 대리자를 전달합니다.

    EventParams eventResult = 
        WaitEventRaise<JobReport>(handler => currentJob.JobReported += handler,
                                  handler => currentJob.JobReported -= handler);
    

    다음 WaitEventRaise과 같이 선언됩니다.

    EventParams WaitEventRaise<T>(Action<EventHandler<T>> add,
                                  Action<EventHandler<T>> remove)
                                 where T : EventArgs
    
  • 으로 이동 EventInfo하면 반사와 인출하려는 이벤트에 해당하는

이것들 중 어느 것도별로 즐겁지 않습니다. Rx도 문제가됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이벤트 핸들러를 매개 변수로 전달

분류에서Dev

매개 변수가있는 함수를 이벤트 핸들러에 전달

분류에서Dev

onclick 이벤트 핸들러에서 매개 변수를 전달할 수 없음-React

분류에서Dev

이벤트 핸들러에 추가 매개 변수를 전달 하시겠습니까?

분류에서Dev

인라인 JavaScript없이 동적 테이블에서 이벤트 핸들러로 매개 변수를 전달하는 방법

분류에서Dev

인라인 JavaScript없이 동적 테이블에서 이벤트 핸들러로 매개 변수를 전달하는 방법

분류에서Dev

매개 변수를 전달하는 여러 이벤트 핸들러가있는 여러 요소 d3.js; 코드 단순화

분류에서Dev

새 양식에서 이벤트 핸들러로 변수 전달

분류에서Dev

EventArgs는 이벤트 핸들러에 매개 변수를 전달하려고 할 때 항상 동일한 값을 갖습니다.

분류에서Dev

인라인 구문을 사용하지 않고 기능 구성 요소에서 이벤트 핸들러로 매개 변수 전달

분류에서Dev

boto 클라이언트 매개 변수를 변수로 전달

분류에서Dev

매개 변수를 React 핸들러 함수에 전달할 수 없습니다.

분류에서Dev

jQuery .on 핸들러에 매개 변수를 전달할 수 있습니까?

분류에서Dev

Python Bottle : 매개 변수를 함수 핸들러에 전달하는 방법

분류에서Dev

jQuery에서 함수 핸들러 + 매개 변수로 이벤트 호출

분류에서Dev

Xamarin의 Clicked 이벤트에 매개 변수를 전달할 수 있나요?

분류에서Dev

이벤트 객체 및 기타 매개 변수를 JavaScript 함수에 전달

분류에서Dev

vue 이벤트 (@input)에서 참조로 매개 변수 전달

분류에서Dev

Onclick 이벤트로 매개 변수 전달

분류에서Dev

JS-이벤트 핸들러를 사용하여 함수에 인수 전달

분류에서Dev

이벤트 핸들러에 인수를 어떻게 전달합니까?

분류에서Dev

React에서 div를 클릭 할 때 이벤트 매개 변수 전달

분류에서Dev

이벤트에 추가 매개 변수를 전달하는 방법

분류에서Dev

Yii2-이벤트에서 매개 변수를 전달하는 방법

분류에서Dev

이벤트 핸들러를 React에서 소품으로 전달합니다.

분류에서Dev

자바 스크립트 전달 매개 변수 오류, 클릭 이벤트가 전달의 모든 매개 변수를 전달합니다.

분류에서Dev

ListItem onMouseOver 핸들러에 추가 매개 변수 전달

분류에서Dev

변수를 매개 변수로 전달

분류에서Dev

핸들 매개 변수를 전달하지 않고 Delphi로 DLL 프로젝트에서 호스트 응용 프로그램 핸들을 얻는 방법

Related 관련 기사

  1. 1

    이벤트 핸들러를 매개 변수로 전달

  2. 2

    매개 변수가있는 함수를 이벤트 핸들러에 전달

  3. 3

    onclick 이벤트 핸들러에서 매개 변수를 전달할 수 없음-React

  4. 4

    이벤트 핸들러에 추가 매개 변수를 전달 하시겠습니까?

  5. 5

    인라인 JavaScript없이 동적 테이블에서 이벤트 핸들러로 매개 변수를 전달하는 방법

  6. 6

    인라인 JavaScript없이 동적 테이블에서 이벤트 핸들러로 매개 변수를 전달하는 방법

  7. 7

    매개 변수를 전달하는 여러 이벤트 핸들러가있는 여러 요소 d3.js; 코드 단순화

  8. 8

    새 양식에서 이벤트 핸들러로 변수 전달

  9. 9

    EventArgs는 이벤트 핸들러에 매개 변수를 전달하려고 할 때 항상 동일한 값을 갖습니다.

  10. 10

    인라인 구문을 사용하지 않고 기능 구성 요소에서 이벤트 핸들러로 매개 변수 전달

  11. 11

    boto 클라이언트 매개 변수를 변수로 전달

  12. 12

    매개 변수를 React 핸들러 함수에 전달할 수 없습니다.

  13. 13

    jQuery .on 핸들러에 매개 변수를 전달할 수 있습니까?

  14. 14

    Python Bottle : 매개 변수를 함수 핸들러에 전달하는 방법

  15. 15

    jQuery에서 함수 핸들러 + 매개 변수로 이벤트 호출

  16. 16

    Xamarin의 Clicked 이벤트에 매개 변수를 전달할 수 있나요?

  17. 17

    이벤트 객체 및 기타 매개 변수를 JavaScript 함수에 전달

  18. 18

    vue 이벤트 (@input)에서 참조로 매개 변수 전달

  19. 19

    Onclick 이벤트로 매개 변수 전달

  20. 20

    JS-이벤트 핸들러를 사용하여 함수에 인수 전달

  21. 21

    이벤트 핸들러에 인수를 어떻게 전달합니까?

  22. 22

    React에서 div를 클릭 할 때 이벤트 매개 변수 전달

  23. 23

    이벤트에 추가 매개 변수를 전달하는 방법

  24. 24

    Yii2-이벤트에서 매개 변수를 전달하는 방법

  25. 25

    이벤트 핸들러를 React에서 소품으로 전달합니다.

  26. 26

    자바 스크립트 전달 매개 변수 오류, 클릭 이벤트가 전달의 모든 매개 변수를 전달합니다.

  27. 27

    ListItem onMouseOver 핸들러에 추가 매개 변수 전달

  28. 28

    변수를 매개 변수로 전달

  29. 29

    핸들 매개 변수를 전달하지 않고 Delphi로 DLL 프로젝트에서 호스트 응용 프로그램 핸들을 얻는 방법

뜨겁다태그

보관