작업 클래스의 간단한 소개

I. 서론

태스크 클래스는 일반적으로 비동기 방식으로 수행되고, 비동기 모드는 .NET 프레임 워크 4에 개체 작업의 작업을 기반으로합니다.

위임 인스턴스화

사용하여 시스템;
사용 System.Collections.Generic 단계;
사용 을 System.Linq 단계;
사용 System.Text 단계;
사용 하여 System.Threading 단계;
사용 System.Threading.Tasks 단계; 

스페이스 MyTask 
{ 
    클래스 프로그램 
    { 
        정적  무효 메인 ( 문자열 []에 args) 
        {  < 목적 > 동작 = ( 오브젝트 OBJ) => 
            { 
                Thread.sleep를 ( 1000 ); 
                Console.WriteLine ( " OBJ : {0} ",의 Obj); 
            }; 
            작업 T1 = 새 새 작업 (액션, " 인수 작업 " ); 
            t1.Start (); 
           
            Console.ReadKey (); 
        } 
    } 
}

작업을 수행 할 수있는 시작 () 메소드를 호출하여 인스턴스화 호출 태스크 T1 클래스 생성자에 의해 상기 태스크의 예는, 가변의 개체 유형을 수용 할 수 있도록이 작용 액션 <object>라는 대리자를 행한다.

III. 만들기 및 실행 작업

작업은 다른 방법으로 인스턴스를 만들 수 있습니다, 우리의 가장 일반적으로 사용되는 방법은 정적 메소드 실행을 호출하는 것입니다, 실행 방법은 작업을 시작하는 간단한 방법을 제공합니다.

사용하여 시스템;
사용 System.Collections.Generic 단계;
사용 을 System.Linq 단계;
사용 System.Text 단계;
사용 하여 System.Threading 단계;
사용 System.Threading.Tasks 단계; 

공간 MyTask 
{ 
    클래스 프로그램 
    { 
        정적  무효 메인 ( 문자열 []에 args) 
        { 
            Task.Run (() => 
                { 
                    Thread.sleep를 ( 1000 ); 
                    Console.WriteLine ( " 任务执行中... " ) 
                });

            Console.WriteLine ( " 메인 스레드 실행 ... " ) 
            Console.ReadKey () 
        } 

      
    } 
}

그것은 정적 메서드 TaskFactory.StartNew 방법의 사용을 대체 할 수있는, 그리고 Task.Factory TaskFactory 속성은 개체를 반환, TaskFactory.StartNew는 작업을 시작하는 메소드를 오버로드되었습니다.

사용하여 시스템;
사용 System.Collections.Generic 단계;
사용 을 System.Linq 단계;
사용 System.Text 단계;
사용 하여 System.Threading 단계;
사용 System.Threading.Tasks 단계; 

네임 스페이스 MyTask 
{ 
    클래스 프로그램 
    { 
        정적  무효 메인 ( 문자열 []에 args) 
        { 
            TaskFactory 공장 = TaskFactory (); 
            작업 작업 1 = factory.StartNew (() => 
            { 
                Console.WriteLine ( " 任务1执行中... " );
            }) 
           
            태스크 Task2 = Task.Factory.StartNew (() => 
            { 
                Console.WriteLine ( " 태스크 2 실행 ... " ) 
            }) 

            (Console.WriteLine " 메인 스레드 실행 ... " ); 
            Console.ReadKey () 
        } 

      
    } 
}

IV. 완성 된 하나 이상의 작업을 기다리는

작업은 일반적으로 만들고, 스레드에서 비동기 적으로 실행하고 스레드가 작업을 실행하는 것입니다 시작하고, 어떤 경우에는 응용 프로그램이 하나 이상의 작업이 완료되지 않은 경우 경우, 한 번에 실행을 계속 호출 스레드를 필요로 당신이 완료 될 때 이러한 작업을 수행하기 위해 대기 할 응용 프로그램이 실행을 계속할 수, 당신은 완료하는 데 하나 이상의 작업을 호출하는 방법을 기다릴 기다릴 수 있습니다. Task.Wait () 메소드는 무조건 작업이 완료되지 않는 한,이 기다릴 차단 된 것으로, 대기됩니다.

사용하여 시스템;
사용 System.Collections.Generic 단계;
사용 을 System.Linq 단계;
사용 System.Text 단계;
사용 하여 System.Threading 단계;
사용 System.Threading.Tasks 단계; 

네임 스페이스 MyTask 
{ 
    클래스 프로그램 
    { 
        정적  무효 메인 ( 문자열 []에 args) 
        { 
            Console.WriteLine ( " 主程序开始执行... " ); 
            TaskFactory 공장 = TaskFactory (); 
            작업 작업 = factory.StartNew (() => 
            { 
                에 Thread.sleep (1000 ); 
                Console.WriteLine ( " 작업 실행이 ... 완료 " ); 
            }); 
            task.Wait (); 
            Console.WriteLine는 ( " 메인 스레드의 실행이 완료 ... " ); 
            Console.ReadKey (); 
        } 
      
    } 
}

: 작업 클래스에 대한 자세한 내용은 공식 문서를 참조하십시오 https://docs.microsoft.com/zh-cn/dotnet/api/system.threading.tasks.task?view=netframework-4.5을

추천

출처www.cnblogs.com/QingYiShouJiuRen/p/11238501.html