Почему при работе с Task происходят такие задержки?
using System;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static void SomethingLong()
{
Thread.Sleep(30000);
}
static void Main(string[] args)
{
for (int i = 0; i < 20; ++i)
Task.Run(() => { Console.Write("="); SomethingLong(); });
for (int i = 0; i < 20; ++i)
(new Thread(() => { Console.Write("-"); SomethingLong(); })).Start();
for (int i = 1; i <= 20; ++i)
{
Thread.Sleep(1000);
Console.Write(i.ToString());
}
}
}
Потому что задачи используют пул потоков. Если при создании задачи в пуле не осталось потоков - то CLR выбирает создавать новый или ставит задачу в очередь.
Если заведомо известно что задача будет выполняться долго и другие не должны ее ждать - можно использовать метод Task.Factory.StartNew
с опцией TaskCreationOptions.LongRunning
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Заметил что у кнопок со свойством float содержимое немного вниз сдвинуто vertical-align и line height не работаютКак выровнять?
Прошу прощения за мой дилетантский вопрос: