복수의 염색체 생성?
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 바인딩 된 작업을 사용하여 "시스템에서 사용할 결과를 사용할 수 있습니다.
백그라운드에서 실행되는 것입니다.
이 사례를 참조하십시오 :
작업은 시스템 코드에서 오는 음성에 실행됩니다. 기본적으로 백그라운드에서 실행됩니다.
아직 백그라운드 작업이 확실하지 않은 경우 다음과 같은 작업 내에서 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
'ProgramingTip' 카테고리의 다른 글
특히 웹 앱에서 UUID를 사용하는 데이터베이스 행 식별자는 어떻게 생각하십니까? (0) | 2020.10.24 |
---|---|
열거를위한 단수 또는 복수? (0) | 2020.10.24 |
org.hibernate.PersistentObjectException : 분리 된 지속가 지속 전달. (0) | 2020.10.24 |
특정 속성을 표시 한 모든 속성 가져 오기 오기 (0) | 2020.10.24 |
Knockout.js를 사용하여 특정 위치에서 ObservableArray 항목을 추가 / 삽입하는 방법 (0) | 2020.10.24 |