0

現在の .Net フレームワーク バージョンのオブジェクトを使用しながら、ここで説明されているようなノンブロッキング スレッド同期の利点を活用する方法はありますか?System.Threading.Task

私が本質的に探しているのは、このコードを変更することです

new Task(() =>
{
    lock (_lock)
    {
        ...            
    }
});

Taskロックによって保護された操作を実行する際に使用されるスレッドプールスレッドをブロックしないものに変更します。

4

1 に答える 1

2

.Net 4.0 TPL を使用してこれを行う場合は、 ParallelExtensionsExtrasTaskSchedulerなどのカスタムを使用できます。LimitedConcurrencyLevelTaskScheduler

C# 5.0 を使用できる場合は、 Nito AsyncExawaitと一緒に、SemaphoreSlim.WaitAsync()またはAsyncLockNito AsyncEx から使用できます。

于 2013-07-04T22:09:32.463 に答える