[ C# / Windows Phone ] ThreadPool

Cоздание и уничтожение потоков достаточно дорогостоящая операция. Для того чтобы избежать накладных расходов связанных с этим используют ThreadPool.

В пуле нас всегда ждет определенное известное CLR количество потоков готовых на выполнение задач. И именно поэтому почти все книги про .NET говорят, что для быстрого создания и выполнения потока ThreadPool.QueueUserWorkItem годится, а метод Start класса Thread нет.

                System.Threading.ThreadPool.QueueUserWorkItem((o) =>
                {
                    // Some Work
                });

Рекомендуется использовать для исполнения небольшой работы, возникающей «здесь и сейчас».

Для обновления UI и выполнения работы в UI потоке непосредственно из ThreadPool, можно воспользоваться:

                Dispatcher.BeginInvoke(() =>
                {
                    SomeList.ItemSource = null;
                });

 

habrahabr

stackoverflow

dotnetperls

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *