2011-12-04 2 views
0

이 오류는 이전에는 발생하지 않았습니다. 여기 내 코드가있다. 여기 process_OutputDataReceived에 대한 오버로드가 대리자와 일치하지 않습니다. System.Diagnostics.DataReceivedEventHandler

 private Process process = null; 
    private void button5_Click(object sender, EventArgs e) 
    { 
     if (null != process) 
     { 
      process.Dispose(); 
     } 

     process = new Process(); 
     process.StartInfo.FileName = "world.exe"; 
     process.StartInfo.Arguments = ""; 
     process.StartInfo.UseShellExecute = false; 
     process.EnableRaisingEvents = true; 
     process.StartInfo.CreateNoWindow = true; 
     process.StartInfo.RedirectStandardOutput = true; 

     process.OutputDataReceived += new DataReceivedEventHandler(process_OutputDataReceived); 
     process.Exited += new EventHandler(process_Exited); 
     process.Start(); 
     process.BeginOutputReadLine(); 
    } 

    private void process_OutputDataReceived(object sender, DataReceivedEventArgs e) 
    { 
    } 

내가에 오류가 받고 있어요 무엇 :

위의 내가 썼다 때까지 잘하는지
  process.OutputDataReceived += new DataReceivedEventHandler(process_OutputDataReceived); 

;

private void process_OutputDataReceived(object sender, DataReceivedEventArgs e) 
    { 
    } 

도움을 받으실 수 있습니다. 이것이 더 이상 구체적이지 않을 수 있습니다.

답변

1

내가 생각할 수있는 유일한 점은 네임 스페이스 충돌 (즉, 사용중인 클래스의 이름과 일치하는 다른 클래스가 환경에 존재 함)입니다.

명시 적 네임 스페이스 선언 사용해보십시오 :

process.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(process_OutputDataReceived); 

    private void process_OutputDataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e) 
    { 
    } 
+0

감사의 꽃 봉오리. 이제 작동합니다. ;) –

+0

우수! 이 사이트에서는 질문을 해결하는 데 도움이되거나 도움이되는 답변 옆에있는 체크 상자와 위쪽 화살표를 클릭하면 나중에 질문자가 어떤 답변으로 도움을 받았는지 알 수 있습니다. –

관련 문제