Я очень запутался здесь в многопоточности :( Я читаю о ключевых словах C# Async/Await. Часто читаю, что с помощью этой функции async код запускается " без блокировки ». Люди помещают примеры кода в две категории« IO-Bound »и« CPU-bound »- и что я не должен использовать поток, когда я выполняю связанные с io вещи, потому что этот поток будет просто ждать ..Threads, Task, async/await, Threadpool
Я не понимаю ... Если я не хочу, чтобы пользователь должен был ждать операции, я должен выполнить эту операцию в другом потоке, правильно?
Если я использую Threadpool, экземпляр «Thread» «класс, делегат.BeginInvoke или TPL - каждый синхронное выполнение выполняется в другом потоке. (С или без обратного вызова)
Темы - один из способов достижения асинхронности, но асинхронность не требует использования потоков.См. Статью Стивена Клири, [No No Thread] (http://blog.stephencleary.com/2013/11/there-is-no-thread.html). –
MS действительно выполнил довольно приличную работу по документированию этого. Не уверен, прочитали ли вы руководство по асинхронному программированию ... но вы должны: https://msdn.microsoft.com/en-us/library/hh191443.aspx –
Кроме того, для очень хорошего введения в потоки в C# вы может захотеть прочитать это http://www.albahari.com/threading/ – Alex