2014-10-23 3 views
0

기본적으로 내가하고있는 일은 데이터를 byte []에 쓰고 버퍼의 크기를 반환하는 임시 버퍼를 만드는 것입니다. 그런 다음이 코드를 사용하여 네트워크에서 코드를 디 세그먼트 화하려고합니다. 일단 내가 버퍼 크기를 찾을 내가 네트워크를 통해 호출 할 수있는 목록에서 내 작업을 모두 저장하고있어, 기본적으로Action.Invoke 인스턴스에 대한 클래스?

을 (내 C# 클라이언트를 얻기 위해 노력하는 것은 인 Netty의 FrameDecoder 클래스와 제대로 작동하려면) (동적)

 public void SendBuffer(DataOutputStream ClientOuput) 
     { 
       ClientOuput.WriteInt(GetBufferSize()); 
       foreach (Action a in executionList) 
       { 
         // What Do? 
       } 
     } 

내 문제는 내가 SendBuffer 매개 변수를 통해 전달되는 DataOutputStream 정렬 내부의 메소드를 호출 할 필요가 있으므로

ClientOutput.a.invoke(); 

이 작업을 수행하는 가장 좋은 방법은 무엇입니까 같은 것입니다?

+0

는 "내부"무엇을 의미합니까있다 : 그럼 당신은 같은 일을 할 수 있을까? – usr

+0

원격 컴퓨터에서 코드를 실행 하시겠습니까? – Rob

+0

@ Christian.tucker이 (가) 해결했거나 더 자세한 정보를 제공 할 수 있습니까? –

답변

0

당신이 묻고있는 것이 분명하지 않지만 어쨌든 대답하려고 노력합니다. 그래서 당신은 DataOutputStream의 인스턴스에 의해 실행되기를 원하는 액션 (어딘가에 정의 됨)이 있습니까? 여기

public async void SendBuffer(DataOutputStream clientOuput) 
{ 
    var executionList = new List<Action>() 
     { 
      () => { Debug.WriteLine("whatyousay"); Thread.Sleep(1500); }, 
      () => { Debug.WriteLine("allyourbase"); Thread.Sleep(1500); }, 
     }; 

    clientOuput.WriteInt(1); 
    foreach (Action action in executionList) 
     await clientOuput.Execute(action); 

    Debug.WriteLine("arebelongtous"); 
} 

DataOutputStream 단지

public class DataOutputStream 
{ 
    // await and actions will be executed in given order, non-blocking 
    public Task Execute(Action action) 
    { 
     return Task.Run(action); 
    } 

    // fire & forget, non-blocking 
    public void BeginInvoke(Action action) 
    { 
     action.BeginInvoke(callback => {}, null); 
    } 

    // blocking 
    public void Invoke(Action action) 
    { 
     action.Invoke(); 
    } 

    public void WriteInt(int integer) 
    { 
     Debug.WriteLine("int:{0}", integer); 
    } 
} 
+1

어쩌면 그것은 나만의 것이지만, 논평은 -1보다 건설적 일 것입니다. –

+1

나에게 충분히 좋아 보인다. 그것을 되찾자 :-) –

+1

그냥 한 가지만 (나는 downvoter가 아니라 그냥 지나가 다), 나는 그 메소드가'async'로 표시되지 않고'await' 내부에 있기 때문에 컴파일되지 않을 것이라고 생각한다. 그 시체. –

관련 문제