«task-parallel-library» 태그된 질문

Task Parallel Library는 .NET 4 이후 .NET Framework의 일부입니다. 개발자가 비동기 응용 프로그램을 프로그래밍 할 수 있도록하는 API 세트입니다.

6
CancellationToken의 기본 매개 변수
추가하고 싶은 비동기 코드가 있습니다 CancellationToken. 그러나 이것이 필요하지 않은 많은 구현이 있으므로 기본 매개 변수를 갖고 싶습니다 CancellationToken.None. 하나, Task<x> DoStuff(...., CancellationToken ct = null) 수확량 'System.Threading.CancellationToken'유형에 대한 표준 변환이 없기 때문에 ''유형의 값을 기본 매개 변수로 사용할 수 없습니다. 과 Task<x> DoStuff(...., CancellationToken ct = CancellationToken.None) 'ct'의 기본 …

5
교착 상태를 일으키는 비동기 / 대기 예제
C #의 async/ await키워드를 사용하는 비동기 프로그래밍에 대한 몇 가지 모범 사례를 보았습니다 (C # 5.0을 처음 사용했습니다). 주어진 조언 중 하나는 다음과 같습니다. 안정성 : 동기화 컨텍스트 파악 ... 일부 동기화 컨텍스트는 재진입이 불가능하고 단일 스레드입니다. 이는 주어진 시간에 하나의 작업 단위 만 컨텍스트에서 실행될 수 있음을 의미합니다. 이에 …

3
끝없는 작업을 구현하는 적절한 방법. (타이머 대 작업)
따라서 내 앱은 앱이 실행 중이거나 취소가 요청되는 동안 거의 연속적으로 (각 실행 사이에 10 초 정도 일시 중지) 작업을 수행해야합니다. 수행해야하는 작업에는 최대 30 초가 소요될 수 있습니다. System.Timers.Timer를 사용하고 AutoReset을 사용하여 이전 "틱"이 완료되기 전에 작업을 수행하지 않는지 확인하는 것이 더 낫습니까? 아니면 취소 토큰이있는 LongRunning 모드에서 일반 …

7
System.Threading.Timer에 대한 작업 기반 대체가 있습니까?
저는 .Net 4.0의 Tasks를 처음 접했고 Task 기반 대체 또는 Timer 구현 (예 : 주기적 작업)을 찾을 수 없었습니다. 그런 것이 있습니까? 업데이트 저는 CancellationToken을 모두 활용하는 자식 작업으로 작업 내부의 "타이머"기능을 래핑하고 추가 작업 단계에 참여할 수 있도록 작업을 반환하는 내 요구에 대한 해결책이라고 생각하는 것을 생각해 냈습니다. public …

3
SemaphoreSlim의 사용법을 이해해야합니다.
여기에 제가 가지고있는 코드가 있지만 무엇을하는지 이해가되지 않습니다 SemaphoreSlim. async Task WorkerMainAsync() { SemaphoreSlim ss = new SemaphoreSlim(10); List<Task> trackedTasks = new List<Task>(); while (DoMore()) { await ss.WaitAsync(); trackedTasks.Add(Task.Run(() => { DoPollingThenWorkAsync(); ss.Release(); })); } await Task.WhenAll(trackedTasks); } void DoPollingThenWorkAsync() { var msg = Poll(); if (msg != null) { …

7
PrevTask.Wait ()는 ContinueWith (태스크 라이브러리에서)와 함께 사용하는 것이 좋습니다.
그래서 최근에 .ContinueWith for Tasks를 사용하는 방법이 적절한 사용 방법이 아니라는 말을 들었습니다. 나는 아직 인터넷에서 이것에 대한 증거를 찾지 못했기 때문에 여러분들에게 물어보고 답이 무엇인지 볼 것입니다. 다음은 .ContinueWith를 사용하는 방법의 예입니다. public Task DoSomething() { return Task.Factory.StartNew(() => { Console.WriteLine("Step 1"); }) .ContinueWith((prevTask) => { Console.WriteLine("Step 2"); }) …

7
Task. 매개 변수로 실행 하시겠습니까?
저는 멀티 태스킹 네트워크 프로젝트를 진행하고 있으며 Threading.Tasks. 나는 간단한 것을 구현했고 Task.Factory.StartNew()어떻게 할 수 Task.Run()있을까? 다음은 기본 코드입니다. Task.Factory.StartNew(new Action<object>( (x) => { // Do something with 'x' }), rawData); 개체 브라우저System.Threading.Tasks.Task 에서 살펴본 결과 유사한 매개 변수를 찾을 수 없습니다 . 매개 변수 를 취하는 것만 있고 유형 …

4
비동기 BlockingCollection <T>과 같은 것이 있습니까?
나는 싶습니다 await의 결과에 BlockingCollection&lt;T&gt;.Take()비동기, 그래서 스레드를 차단하지 않습니다. 다음과 같은 것을 찾고 있습니다. var item = await blockingCollection.TakeAsync(); 나는 이것을 할 수 있다는 것을 안다. var item = await Task.Run(() =&gt; blockingCollection.Take()); 그러나 그것은 다른 스레드 (의 ThreadPool)가 대신 차단 되기 때문에 전체 아이디어를 죽 입니다. 대안이 있습니까?

2
BackgroundWorker에 대한 작업 병렬 라이브러리 대체?
태스크 병렬 라이브러리에 BackgroundWorker 클래스를 대체하거나 개선 한 것으로 간주되는 것이 있습니까? 마법사 스타일의 UI가있는 WinForms 응용 프로그램이 있으며 몇 가지 장기 실행 작업을 수행합니다. 표준 진행률 표시 줄과 작업 취소 기능을 사용하여 반응 형 UI를 사용하고 싶습니다. 이전에 BackgroundWorker로이 작업을 수행했지만 대신 사용할 수있는 TPL 패턴이 있는지 궁금합니다.

6
태스크에서 동기식 연속을 방지하려면 어떻게해야합니까?
Task.NET을 기반으로 요청에 대한 보류중인 응답에 대한 기반 API를 제공하는 라이브러리 (소켓 네트워킹) 코드가 TaskCompletionSource&lt;T&gt;있습니다. 그러나 동기식 연속을 방지하는 것이 불가능 해 보인다는 점에서 TPL에는 성가심이 있습니다. 내가 것 처럼 할 수 있도록하는 중입니다 : TaskCompletionSource&lt;T&gt;발신자가을 (를) 첨부하는 것을 허용해서는 안된다고 알리 TaskContinuationOptions.ExecuteSynchronously거나 대신 풀을 사용하여 무시해야 함 을 지정하는 …

2
Task에서 예외를 포착하는 가장 좋은 방법은 무엇입니까?
를 사용하면 System.Threading.Tasks.Task&lt;TResult&gt;발생할 수있는 예외를 관리해야합니다. 최선의 방법을 찾고 있습니다. 지금까지 호출 내에서 잡히지 않은 모든 예외를 관리하는 기본 클래스를 만들었습니다..ContinueWith(...) 더 나은 방법이 있는지 궁금합니다. 또는 그것이 좋은 방법이라고해도. public class BaseClass { protected void ExecuteIfTaskIsNotFaulted&lt;T&gt;(Task&lt;T&gt; e, Action action) { if (!e.IsFaulted) { action(); } else { Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() …

6
IO 바인딩 작업에 ThreadPools 또는 Task Parallel Library를 사용해야합니까?
애그리 게이터 인 내 프로젝트 중 하나에서 웹에서 피드, 팟 캐스트 등을 구문 분석합니다. 순차 접근 방식을 사용하는 경우 리소스가 많기 때문에 모든 리소스를 처리하는 데 상당한 시간이 걸립니다 (네트워크 문제 및 이와 유사한 문제로 인해). foreach(feed in feeds) { read_from_web(feed) parse(feed) } 그래서 동시성을 구현하고 싶고 기본적으로 ThreadPools를 사용하여 …

3
Task.WhenAll의 연속이 동 기적으로 실행되는 이유는 무엇입니까?
Task.WhenAll.NET Core 3.0에서 실행할 때 방법 에 대해 궁금한 점을 확인했습니다 . 간단한 Task.Delay작업을에 단일 인수로 전달 Task.WhenAll했으며 래핑 된 작업이 원래 작업과 동일하게 작동 할 것으로 예상했습니다. 그러나 이것은 사실이 아닙니다. 원래 작업의 연속은 비동기식으로 (바람직하게) Task.WhenAll(task)실행되고 여러 래퍼 의 연속은 연속적으로 동 기적으로 실행됩니다 (바람직하지 않음). 다음은 이 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.