ProgramingTip

복수의 염색체 생성?

bestdevel 2020. 10. 24. 11:20
반응형

복수의 염색체 생성?


dot.net 4 작업 클래스가 배경 또는 전경의 새 작업 클래스가 궁금합니다.

일반적으로 "IsBackground"를 사용할 수 없습니다.

MSDN에서 이에 대한 문서를 사용할 수 없었습니다 :-(


확인하기 어렵지 않습니다.

class Program
{
    static void Main()
    {
        Task
            .Factory
            .StartNew(() => Console.WriteLine(Thread.CurrentThread.IsBackground))
            .Wait();
    }
}

그리고 대답은 ...

ǝnɹʇ


Task<T>사용하여 시작하는 경우 Task.Run()예.

async을 사용하는 경우 await아니요. 여기 에서 발췌 :

"async 및 await 키워드는 추가를 생성하지 않습니다. 즉, 메서드는 자체적으로 실행되지 않습니다. 따라서 메서드는 멀티 스레딩이 필요합니다. 메서드는 현재 동기화에서 실행되고 사용됩니다. 활성화 된 경우에만 가능합니다. Task.Run을 사용하여 CPU 바인딩 된 작업을 사용하여 "시스템에서 사용할 결과를 사용할 수 있습니다.


백그라운드에서 실행되는 것입니다.

이 사례를 참조하십시오 :

여러 C # 작업 실행


작업은 시스템 코드에서 오는 음성에 실행됩니다. 기본적으로 백그라운드에서 실행됩니다.


아직 백그라운드 작업이 확실하지 않은 경우 다음과 같은 작업 내에서 GUI 요소에 액세스 해 있습니다.

public async Task<int> ProcessStuff_Async()
{
    while(true)
    {
        label1.Text = "processing next item";

런타임 예외를 얻을 수 :

크로스 정규 작업이 유효하지 않음 : 컨트롤 'label1'이 생성 된 단일가 아닌 다른 코드에서 액세스합니다.

좋은 오래된 일반 백그라운드와 많음.

의 정보가 MSDN의 오피스 2017 등은 (:-), 예를 들면 :

이 처리하는 가장 좋은 방법은 ... [하는 시작 백그라운드 스레드 를 사용하여 작업을 수행 Task.Run를 하고 기다리고 그 결과를. 이렇게하면 작업이 진행되는 동안 UI가 매끄럽게 느껴질 수 있습니다.

이 문서에는 섹션도 What happens under the covers있습니다.

참고 URL : https://stackoverflow.com/questions/5209591/are-tasks-created-as-background-threads

반응형