2011-04-26 3 views
1

은 내가 무엇을 찾고 있어요 것은 C#에서 Tasks.Parallel을 사용하여 기존 작업을 중지?방법은 다음과 같이

내가 처음 생성 된 스레드에 대한 참조를 어떻게 든 유지하고 카운터에 도달했거나 종료해야 할 필요가 있습니까?

답변

1

무엇 자녀/부모 작업을 사용하는 방법에 대한 :

당신이 asychronous 소켓 API를 사용하는 경우에 대해 별도의 스레드를 회전에 대해 걱정할 필요가 없습니다

http://msdn.microsoft.com/en-us/library/dd537609.aspx

var parent = Task.Factory.StartNew(() => 
{ 
    Console.WriteLine("Parent task beginning."); 

    var child = Task.Factory.StartNew(() => 
    { 
     Thread.SpinWait(5000000); 
     Console.WriteLine("Attached child completed."); 
    }, TaskCreationOptions.AttachedToParent); 

}); 

parent.Wait(); 
Console.WriteLine("Parent task completed."); 

/* Output: 
    Parent task beginning. 
    Attached task completed. 
    Parent task completed. 
*/ 
+0

이 좋아 보인다, 유일한 문제는 코드() 내 소켓 처리 클래스는 대기 연결을 루핑 BCS를 가정 parent.Wait에 내동댕이 것입니다. 자녀의 과제가 끝나면 부모님을 어떻게 든 끝낼 수 있기를 바랍니다. – Remotec

+0

얼마나 많은 어린이 작업을 경청해야하는지 알고 있습니까? 듣기 시작하기 전에 정의되어 있습니까? – Hath

+0

문제점은 소켓 코드가 차단되고 있습니다. – Remotec

0

에서 당신의 소켓 청취 ... 성능면에서 sychronous calls 주위에 원을 그리는 것은 말할 것도 없습니다. 생각에 대한

식품 ...